首页 热点资讯 义务教育 高等教育 出国留学 考研考公

父类强制转换成子类调用子类方法是否可以运行

发布网友 发布时间:2022-04-23 13:32

我来回答

1个回答

热心网友 时间:2023-08-03 00:50

这要看类型声明为父类的变量指向的实际实例与要转换成的目标子类的实例或目标子类的子类实例。

例:

public class 父类 {
   public void 父类方法() {
     System.out.println("父类方法");
   }
}

public class 子类A extends 父类 {
  public void 子类A方法() {
    System.out.println("子类A方法");
  }
}  

public class 子类B extends 父类 {
  public void 子类B方法() {
    System.out.println("子类B方法");
  }
}  

public class Test {
  public static void main(String[] args) {
    父类 子A = new 子类A();
    父类 子B = new 子类B();
    父类 父 = new 父类();
    ((子类A) 子A).子类A方法(); // 正常执行
    ((子类B) 子B).子类B方法(); // 正常执行
//    ((子类A) 父).子类A方法(); // ClassCastException
//    ((子类B) 父).子类B方法(); // ClassCastException
  }
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com