以下是我做的笔记希望对你有用哦、、
多态:
多态的体现
父类的引用指向自己的子类对象;
父类的引用也可以接收自己的子类对象;
多态的前提
必须是类与类之间有关系,要么继承,要么实现;
通常有个前提:存在覆盖;
多态的好处
多态的出现提高了程序的扩展性;
多态的弊端
提高了扩展性,但是只能使用父类的引用访问父类中的成员;
小知识点:判断一个类型的引用是指向的对象是否符合该类型用关键字instanceof
如:if(a instanceof b) a为一个引用对象,b为类名;
转型:强制将父类的引用转成子类的对象
父类 f = new 子类();
1、在多态中非静态成员函数的特点:(简单总结:编译看左边,运行看右边)
在编译时期:参阅的引用型变量所属类中是否有调用方法,如果有编译通过,如果没有,编译 失败; 如:父类 父类引用f = new 子类()
f . method1(); //method1()为方法;
如果父类中含有method1()方法,则编译成功;否则失败;
在运行时期:参阅对象所属类中是否有调用方法;
运行时:调用的方法为 子类中的method1()方法;
2、在多态静态成员函数的特点:无论编译和运行,都参考左边;
3、在多态中成员变量的特点:无论在编译和运行都参考左边(引用变量所属的类); |