JavaSe学习总结_抽象类、多态与接口篇
(一)抽象类
1 定义:在一个类中,如果要给出一个抽象功能,那就必须将这个类定义为抽象类
2 格式:
抽象类的格式:abstract class 父类名(Animal){}
抽象方法的格式:public abstract(必须写) 方法名() ;
3 抽象类的特点:
a 抽象类不能直接实例化,即不能直接创建对象
b 子类必须重写父类的抽象功能
4 抽象类的子类:
a 抽象类的子类如果是抽象类:没有任何意义,因为是通过具体类创建对象
b 子类是具体类:对象的创建工作,由子类完成,格式:父类名 对象名 = new 子类名();
5 抽象类成员的特点:
成员变量:可以是变量或常量
构造方法:所有的构造方法都是给对象进行初始化:默认初始化或显示初始化
成员方法:可以是抽象的方法或非抽象的方法
代码:
运行结果:
(二)多态
1 多态的前提条件:
a 必须有继承关系
b 必须方法重写
c 必须有父类引用指向子类对象,即向上转型
2 格式:父类名 对象名 = new 子类名() ;
代码:
运行结果:
3 多态中的成员访问特点
3.1 成员变量的访问特点:编译看左,运行看左
3.2 成员方法的访问特点:编译看左,运行看右
3.3 构造方法:就是给对象初始化的
3.4 静态成员方法的访问特点:编译看左,运行看左
4 多态的好处:
a 提高代码的扩展性(由多态保证)
b 提高代码的维护性(由继承关系)
5 多态的弊端:不能访问子类特有功能
(三)接口
1 定义:将一些额外功能暴露出来,只要哪些类实现了这个接口,也必须会去取实现该接口中的功能
2 格式:interface 接口名{...}
3 接口的成员特点:
成员变量:默认的修饰符public static finla
构造方法:接口中没有构造方法
成员方法:默认的修饰符public abstract
4 类、接口关系的区别:
4.1 类与类的关系:继承关系(extends),单继承,不能多继承,但可多层继承
4.2 类与接口的关系:实现关系(implements),一个类继承另一个类的同时还能实现多个接口
4.3 接口与接口的关系:继承关系(extends),可以是单继承和多继承