今天做了一个测试的题目,发现自己还是很多问题没有静下心来做。很多问题是可以自己解决的但是自己一是没有读清题意,二是自己心里太急躁了。所以这个要自己应以为鉴!
对象的转型问题其实并不复杂,我们记住一句话:“父类引用指向子类对象”。
java中对象的转型分为向上转型和向下转型
1.1、定义
子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口
1.2、解释
比如说我有两个类,一个是父类Animal,另一个是Bird类为子类。
Animal b = new Bird();
这就是upcasting,向上转型。这时b就是执行以恶搞Bird对象。
1.3、实例
package com.zyh.test; public class Animal { public void eat(){ System.out.println("animal eating...."); } } class Bird extends Animal{ public void eat(){ System.out.println("Bird eating..."); } public void fly(){ System.out.println("Bird flying..."); } } class Main{ public static void main(String[] args){ Animal b1 = new Bird(); b1.eat(); // b1.fly(); b虽然指向子类对象,但此时丢失了fly方法 doSleep(new Male()); doSleep(new Female()); } public static void doSleep(Human h){ h.sleep(); } }