继承
1、面向对象的三大特征:封装、继承、多态。
2、继承是多态的前提,没有继承就没有多态。
3、子类有父类的属性与方法,并且可以添加自己的属性与方法。
4、定义格式:public class 子类名 extends 父类名{}
5、当父类和子类中的成员变量和方法重名时:
直接通过子类对象访问时:创建对象时=号左边是谁就是谁,没有的话向上找。
间接通过成员方法访问成员变量时:当方法是子类的,优先用子类的变量,没有的话向上找;如果方法是从父类继承的,优先用父类的。
6、在子类中访问父类的成员变量:super.成员变量名。
7、当子类和父类成员方法重名时,子类访问成员方法时,优先用子类方法,没有向上找。
8、重写(覆盖)和重载的区别:方法名一样,但是重写的参数列表也相同而重载的参数列表不一样。@Override写在方法名前面,用来检测是否是有效的覆盖。重写时子类方法的返回值必须小于等于父类方法的返回值范围。重写时子类方法的权限必须大于等于父类方法的修饰权限。Public>protected>default>private。
9、使用重写(覆盖)的场景:当设计需求对功能模块进行功能扩展时,定义一个新类继承老类并重写老类中的方法。
10、当父类和子类中都有自定义构造方法时:创建子类对象时先调用父类的构造方法,再调用子类中的构造方法。也可以通过super()语句显式的重载父类的构造方法,但是super()语句必须是子类构造方法中的第一个语句。
11、super关键字的用法有三种:
在子类的成员方法中,访问父类的成员变量。
在子类的成员方法中,访问父类的成员方法。
在子类的构造方法中,访问父类的构造方法。
12、this关键字的三种用法:
在本类的成员方法中,访问本类的成员变量。
在本类的成员方法中,访问本类的另一个成员方法。
在本类的构造方法中,访问本类的另一个构造方法。this()必须是第一个语句。
13、继承的三个特点:
Java中是单继承的,一个类的直接父类只能有一个。
Java语言可以多级继承,父类可以有父类。
Java语言中一个父类可以有很多个子类。
抽象
1、父类中定义抽象方法不确定如何实现,在子类中具体实现。
2、抽象方法的定义:public abstract void 方法名();,抽象方法所在的类必须是抽象类。在class之前加abstract。
3、抽象类只能被继承,不能之间创建对象。
4、继承抽象类的子类必须重写(实现)继承的父类中的所有的抽象方法,除非该子类也是抽象类。
5、抽象类不一定有抽象方法,但是抽象方法所在的类必须是抽象类。
6、抽象类也可以有构造方法,用来子类构造方法中调用初始化父类成员变量。