黑马程序员技术交流社区
标题:
关于继承的一个问题
[打印本页]
作者:
iBadboy
时间:
2013-7-21 18:50
标题:
关于继承的一个问题
class A
{
String a="class A";
}
class B extends A
{
String b="class B";
}
class Test
{
public static void main(String[] args)
{
A a1,a2=new A();
B b1,b2=new B();
a1=b2;
b1=(B)a1;
//b2=(B)a2;
System.out.println(a1.a);
System.out.println(b1.b);
}
}
复制代码
刚看到一个题,我知道子类的对象可以赋给父类的对象,那父类的对象可以赋给子类吗?我注释掉的b2=(B)a2;在编译时没有错,运行时显示有错,A cannot be cast to B。
而b1=(B)a1;却又为啥是对的?
作者:
夜默
时间:
2013-7-21 18:55
多态中成员函数的特点:
在编译时期,参阅引用变量所属的类中是否有调用的方法,如果有,编译通过,如果没有编译失败。
在运行期间,参阅对象所说的类中是否有调用的方法。
总结:编译看左边,运行看右边
在多态中成员变量的特点,无论编译还是运行,都参考左边(引用型变量所属的类)
在多态中,静态成员函数的特点,无论编译和运行都参考左边。
作者:
iBadboy
时间:
2013-7-21 23:00
巩建 发表于 2013-7-21 18:55
多态中成员函数的特点:
在编译时期,参阅引用变量所属的类中是否有调用的方法,如果有,编译通过,如果没 ...
多谢解释啦。。。我记下来
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2