这些知识大多已经知道是怎么回事了。过一遍将来面试的时候用
对象转型
所谓的转型,是指当引用类型和对象类型不一致的时候,才需要进行类型转换
- 所有的子类转换为父类
- 父类转子类,有的时候行,有的时候不行,所以必须进行强制转换。
- 没有继承关系的两个类,互相转换,一定会失败
- 实现类可以转接口
- 接口不可以转实现类
intanceof
package charactor;
public class Hero {
public String name;
protected float hp;
public static void main(String[] args) {
ADHero ad = new ADHero();
APHero ap = new APHero();
Hero h1= ad;
Hero h2= ap;
//判断引用h1指向的对象,是否是ADHero类型
System.out.println(h1 instanceof ADHero);
//判断引用h2指向的对象,是否是APHero类型
System.out.println(h2 instanceof APHero);
//判断引用h1指向的对象,是否是Hero的子类型
System.out.println(h1 instanceof Hero);
}
}
多态
同一个行为具有多个不同表现形式或形态的能力。
优点
- 消除类型之间的耦合关系
- 可替换性
- 可扩充性
- 接口性
- 灵活性
- 简化性
必要条件
继承
重写
父类引用子类
super关键字
直接父类对象的引用
Object
顶级父类
final关键字
- final修饰类 表示不能被继承
- final修饰方法 表示不能被重写
- final修饰基本类型变量 只能赋一次值
- final修饰引用 表示该引用只有1次指向对象的机会
- 表示常量 public static final int itemTotalNumber = 6;//物品栏的数量
抽象类
在类中声明一个方法,这个方法没有实现体,是一个“空”方法
这样的方法就叫抽象方法,使用修饰符“abstract"
当一个类有抽象方法的时候,该类必须被声明为抽象类
“感觉这个功能只是为了防止开发的时候子类忘记重写父类方法用的”