JavaSe学习总结_抽象类、多态与接口篇

(一)抽象类

1 定义:在一个类中,如果要给出一个抽象功能,那就必须将这个类定义为抽象类

2 格式:

抽象类的格式:abstract class 父类名(Animal){}

抽象方法的格式:public abstract(必须写)  方法名() ;

3 抽象类的特点:

a 抽象类不能直接实例化,即不能直接创建对象

b 子类必须重写父类的抽象功能 

4 抽象类的子类:

a 抽象类的子类如果是抽象类:没有任何意义,因为是通过具体类创建对象

b 子类是具体类:对象的创建工作,由子类完成,格式:父类名 对象名 = new 子类名();

5 抽象类成员的特点:

成员变量:可以是变量或常量

构造方法:所有的构造方法都是给对象进行初始化:默认初始化或显示初始化

成员方法:可以是抽象的方法或非抽象的方法

代码:

JavaSe学习总结_抽象类、多态与接口篇

JavaSe学习总结_抽象类、多态与接口篇

JavaSe学习总结_抽象类、多态与接口篇

JavaSe学习总结_抽象类、多态与接口篇

运行结果:

JavaSe学习总结_抽象类、多态与接口篇

(二)多态

1 多态的前提条件:

a 必须有继承关系

b 必须方法重写

c 必须有父类引用指向子类对象,即向上转型

2 格式:父类名  对象名  = new 子类名() ;

代码:

JavaSe学习总结_抽象类、多态与接口篇

运行结果:

JavaSe学习总结_抽象类、多态与接口篇

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),可以是单继承和多继承