//父类 四边形 class Quadrangle{ public static void draw (Quadrangle q){ } } //子类 public class Parallelogram extends Quadrangle{ public static void main(String args[]){ Parallelogram p=new Parallelogram (); //这就是向上转型 draw(p) } } //子类 public class Paralle…
5.13.1 向上转型 我们在现实中常常这样说:这个人会唱歌.在这里,我们并不关心这个人是黑人还是白人,是成人还是小孩,也就是说我们更倾向于使用抽象概念“人”.再例如,麻雀是鸟类的一种(鸟类的子类),而鸟类则是动物中的一种(动物的子类).我们现实中也经常这样说:麻雀是鸟.这两种说法实际上就是所谓的向上转型,通俗地说就是子类转型成父类.这也符合Java提倡的面向抽象编程思想.来看下面的代码: package a.b; public class A { public void a1() { Syst…
首先要明白一点向上转型和向下转型他们都是建立在继承的基础上. 一.向上转型 子类到父类的转换通常称作向上转型,通俗的说就是定义父类对象指向子类对象. 下面通过一个例子来深入理解向上转型. //定义一个抽象的动物父类 public abstract class Animal { public abstract void Play();//此处需注意抽象方法没有方法体 } //定义一个狗狗类,继承自Animal public class Dog extends Animal { //重写父类的Pla…
1.父类引用可以指向子类对象,子类引用不能指向父类对象. 2.向上转型:子类引用的对象转换为父类类型称为向上转型,把子类对象直接赋给父类引用叫upcasting,向上转型不用强制转型(类似于低精度赋给高精度不用强制转换). 如: Father a = new Son(); 相当于 Son s= new Son(); Father f=s; 注意:向上转型时,只能调用父类的成员方法,如果子类重写了父类的方法就根据这个引用指向调用子类重写的这个方法(这个方法就是覆盖override).这个调用过程就…
在定义中是子类向父类转型称为向上转型,父类向子类转型是向下转型(必须先向上转型过,才能向下转型), 但是在下面类定义后,我得到的结果却不同.求大佬解惑 class superclass{ public int x = 100; public void printinfo() { System.out.println("x = "+this.x); }}class sonclass extends superclass{ public int x = 50; public int y =…