面向对象--继承
继承:
1、提高代码的利用性
2、让类与类之间产生关系 ,从而有了多态的特性
注意:
要让类与类之间有继承关系,那么这两类之间要存在 is a 的关系
如: 猫 是一个动物 , cat is a animal
另外:每个类可以派生很多的子类, 而一个类只能继承一个类,不能够多继承
当两个类出现子父关系之后,类中的成员有什么特点
父类中的成员如果不是私有的,那么将会被子类所继承,可以直接访问
如果父类和子类中出现相同的成员,那么子类会将父类的成员进行覆盖
如果父子类中的成员名相同,子类想要访问父类,则可以使用 super 来引用父类的成员
为什么?
因为:在父子类中, 在创建子类对象时,会先创建父类对象,并存入到内存当中,子类则可以使用super引用父类
this : 是引用当前类
super: 是引用父类
覆盖:
1、子类覆盖父类,必须保证子类权限大于或等于父类权限才可以覆盖,否则编译失败
2、静态成员只能覆盖静态成员
构造函数
1、当子类继承父类后,创建子类时,会自动调用父类的无参构造函数
2、如果父类中写了一个带参的构造函数,但是没有无参的构造函数,创建子类对象时,会编译出错,因为子类会默认调用父类的无参构造方法,而父类如果没有,则会出错。 所以,在对子类对象进行初始化时,父类中必须要有无参构造函数。
3、子类的构造函数第一行可以手动指定 this 语句来访问本类中的构造函数,子类中至少会有一个构造函数会访问父类中的构造函数
注意:在子类中 super语句一定是写在子类构造函数的第一行