示例 1 : 明确引用类型与对象类型的概念
package com.ly.duixiangzhuanxing;
import com.ly.character.ADHero;
public class Hero {
public String name;
protected float hp;
public static void main(String[] args) {
ADHero ad=new ADHero();
//ad是引用
//new ADHero对象
//对象是有类型的ADHero
//引用也是有类型的,是ADHero
//通常情况下,引用类型和对象类型是一样的。
}
}
引用类型和对象类型的转换
所谓的转型,是指当引用类型和对象类型不一致的时候,才需要进行类型转换
类型转换有时候会成功,有时候会失败。
到底能否转换成功? 判别一下
把右边的当做左边来用,看说得通不
Hero h = new Hero();
ADHero ad = new ADHero();
h = ad;
右边ad引用所指向的对象的类型是 物理攻击英雄
左边h引用的类型是 普通英雄
把物理攻击英雄 当做 普通英雄,说不说得通? 说得通,就可以转。
所有的子类转换为父类,都是说得通的。
public class Hero {
public String name;
protected float hp;
public static void main(String[] args) {
Hero h = new Hero();
ADHero ad = new ADHero();
//类型转换指的是把一个引用所指向的对象的类型,转换为另一个引用的类型
//把ad引用所指向的对象的类型是ADHero
//h引用的类型是Hero
//把ADHero当做Hero使用,一定可以
h = ad;
}