java类型转化

Java中的父类/子类相互转化问题:

  • 子类可以转成父类:此时子类能调用父类中定义的方法和变量,如果子类中重写了父类中的一个方法,那么在调用这个方法的时候,将会调用子类中的这个方法
  • 父类转成子类:1、如果父类引用本身是子类对象(new 子类()),可以转换;2、否则无法转换

如:

public class A { public void m() { } }

public class B extends A { public void m() { } public void m2() { } }

 

A a1 = new A(); B b1 = new B();

// 子类转父类

A a2 = (A) b1;

a2.m(); // a2可以调用A(子类)中定义的方法,调用a2.m2()报错

// 父类转子类

B b2 = (B) a2; // 必须a2是B对象时才可以成功转化,否则报错

b2.m(); b2.m2();

 

posted @ 2019-03-06 15:13  hunterDing  阅读(804)  评论(0编辑  收藏  举报