62,620
社区成员
发帖
与我相关
我的任务
分享

A a = new B(); // 父类引用指向子类对象
B b1 = (B) a; // 强制类型转换
但是你这样写是危险的,因为如果a不是B类的对象而是A类的对象,那么你的程序就会出异常,因为a中压根就没有fun3,强制转换也无法给你的对象多加一个fun3方法,所以出现异常,异常代码如下:
package csdn;
class A {
public void fun1() {
System.out.println("A--->小三真好!!");
}
public void fun2() {
this.fun1();
}
public void fun8() {
System.out.println("B----->小三再见!!");
}
}
class B extends A {
public void fun5() {
System.out.println("B----->小三你好,小三再见!!");
}
public void fun3() {
System.out.println("B----->小三再见!!");
}
}
public class DuotaiDemo1 {
public static void main(String[] args) {
A a = new A(); // 父类引用指向子类对象
B b1 = (B) a; // 强制类型转换
b1.fun1();
b1.fun2();
b1.fun3();
}
}