1.继承的基本概念
父类中某一个属性是私有的,通过子类对象就不能访问父类的私有变量。
继承完之后拥有父类全部的东西,但是可以根据实际情况进行重写。
一般所有的类都是继承Object的,实现所有他的方法
像这样是重写了Object类的tostring方法,如果不重写,输出的会是一串带@的字符串。
2.子类对象的构造
当一个类A继承另一个类B时,当通过new来创建A类时,会首先创建一个父类,然后再创建子类,即为现有父类后有子类。
super是系统创建的写在这里只是提醒,心中要明白。
注意:
当继承完毕后,如果父类有对应的属性a,而在子类中又重新定义有a,那么这是两个不同的变量,并且都会在内存中保存,如果要引用父类的变量那么用super.a来引用。
一个类中默认会有一个构造方法的,而且默认继承自Object类,一个类继承父类,什么都不写也是有默认继承和默认构造方法的,这时候如果在子类中要调用父类的构造方法,要注意父类有没有重写,如果父类重写了,那么子类调用是也要匹配。
这时候子类就报错了super调用父类,没有参数,必须改正要么在父类中增加无参构造方法,要么改调用如下
和this调用一样,super都要放在第一句,构造子类之前必须先构建父类。
3.类中常见的关键字
判断某个对象是否是某个类,这里是运算符,如果一个对象是某个类的实例,那么他也是类的所有父类的一个具体实例。
两小的小指的是类的包含关系,谁大谁包含其他。
子类重写会覆盖父类,要想调用父类必须加super限定属性和方法。