黑马程序员技术交流社区
标题:
关于多态
[打印本页]
作者:
xiaoxinxin003
时间:
2015-7-12 17:42
标题:
关于多态
多态中(父类引用指向子类对象)成员函数(非静态)的特点:
(如果子类静态覆盖父类静态方法,运行时调用的还是父类中的静态方法)不常见但是要知道(与静态的加载方式有关)。
在编译时,参阅引用型变量所属的类中是否有调用的方法,如果有则编译通过,如果没有则编译失败,如代码中的方式2
因为父类中没有Method3方法,所以编译失败。
在运行时:参阅对象所属的类中是否有调用的方法。
总结:成员函数在多态中调用时,编译时期看左边(即父类(引用)中有没有调用的方法),
运行看右边(即子类对象中是否有调用的方法)。
多态中成员变量的特点:无论编译还是运行,都是参阅的引用型变量所属的类(左边)。即父类和子类中出现重名变量时,
在多态的情况下,调用的变量值是父类中的值,
class Fu
{
public void Method1(){
System.out.println("method_1");
}
public void Method2(){
System.out.println("method_2");
}
}
class Zi extends Fu
{
public void Method1(){
System.out.println("method_1");
}
public void Method3(){
System.out.println("method_3");
}
}
class DuoTaiDemo5
{
public static void main(String[] args){
//方式2 多态
Fu f = new Zi();
f.Method1();
f.Method2();
//f.Method3();因为父类中没有这个方法。编译失败
//方式1
// Zi z = new Zi();
// z.Method1();
// z.Method2();
// z.Method3();
}
}
复制代码
作者:
zhwfa1991
时间:
2015-7-12 18:21
这个知识点,昨天刚学习过
作者:
小虎199406
时间:
2015-7-12 18:30
加油 加油
作者:
e275919713
时间:
2015-7-12 21:13
复习一遍
作者:
fever_ai_my
时间:
2015-7-12 21:23
学习一下
作者:
拾起落叶
时间:
2015-7-12 21:47
也过来复习一下
作者:
扶摇丶
时间:
2015-7-12 22:00
复习一下
作者:
何鹏程
时间:
2015-7-12 22:13
好多知识点啊。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2