(A)new B().start

public class A {
  public void start() {
    System.out.println("TestA");
 }
}
public class B extends A {
  public void start() {
    System.out.println("TestB");
  }
  public static void main(String[] args) {
    ((A) new B()).start();
  }
}

输出:

TestB

 

((A)new B()).Start
实例化一个B对象,并转换成A类型,调用转换后对象的start

 

PS:

(A)new B().start
实例化一个B对象,并调用start,返回值转成A类型。

posted @ 2018-08-23 22:03  闻长歌而知雅意  阅读(421)  评论(0编辑  收藏  举报