黑马程序员技术交流社区
标题:
关于多态的知识点。
[打印本页]
作者:
细听风语为梧桐
时间:
2016-9-1 19:18
标题:
关于多态的知识点。
1 ,多态前提
a:要有继承关系或者实现关系。
b:要有方法重写。
c:要有父类或者父接口引用指向子类对象。
2 ,多态中的成员访问特点之成员变量
成员变量:编译看左边(父类),运行看左边(父类)
多态中的成员访问特点之成员方法
成员方法:编译看左边(父类),运行看右边(子类)
多态中的成员访问特点之静态成员方法
静态方法:编译看左边(父类),运行看左边(父类)。
(静态和类相关,静态方法算不上重写,所以,访问还是左边的)
只有非静态的成员方法,编译看左边,运行看右边,其他的都是编译和运行都看右边
3,多态的好处
1) 提高了代码的维护性(继承保证)
2) 提高了代码的扩展性(由多态保证)
4,多态的弊端
父类引用虽然指向了子类对象,但不能使用子类的特有属性和行为。
注:父类引用不能使用子类中的特有成员变量和成员方法,如果想使用,需要向下转型
5,抽象类特点
a:抽象类和抽象方法必须用abstract关键字修饰
抽象类格式:abstract class 类名 {}
抽象方法: public abstract void eat();
注意:抽象方法没有方法体大括号{}
b:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口
6,10 抽象类的成员特点
抽象类的成员特点
a:成员变量:既可以是变量,也可以是常量。
abstract是否可以修饰成员变量?不能修饰成员变量
b:构造方法:有,但不能实例化。
用于子类访问父类数据的初始化。
c:成员方法:既可以是抽象的,也可以是非抽象的。
可以有抽象方法 限定子类必须完成某些动作
也可以有非抽象方法 提高代码服用性
7,抽象类的成员方法特性:
a:抽象方法 强制要求子类做的事情。
b:非抽象方法 子类继承的事情,提高代码复用性
8,接口的特点
* a:接口用关键字interface表示
* interface 接口名 {}
* b:类实现接口用implements表示
* class 类名 implements 接口名 {}
* c:接口不能实例化
* 那么,接口如何实例化呢?
* 按照多态的方式来实例化。由具体的子类实例化。其实这也是多态的一种,接口多态。
* d:接口的子类
* a:可以是抽象类。但是意义不大。
* b:可以是具体类。要重写接口中的所有抽象方法
作者:
52java
时间:
2016-9-1 20:14
666666666666666666666
作者:
gcno93
时间:
2016-9-1 20:32
很厉害的说
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2