Java学习笔记:接口、对象转型、重写及多态
#.接口
- 在设计LOL的时候,进攻类英雄有两种,一种是进行物理系攻击,一种是进行魔法系攻击
- 这时候,就可以使用接口来实现这个效果。
- 接口就像是一种约定,我们约定某些英雄是法术系英雄,他们就一定能够进行法术攻击。
public class APHero extends Hero implements AP{
@Override
public void magicAttack() {
System.out.println("进行法术攻击");
}
}
#.对象转型
instanceof 判断一个引用所指向的对象
$.子类转父类(向上转型)
- 所谓的转型,是指当引用类型和对象类型不一致的时候,才需要进行类型转换
- 类型转换有时候会成功,有时候会失败(参考基本类型的类型转换)
- 到底能否转换成功? 教大家一个很简单的判别办法
- 把右边的当做左边来用,看说得通不
Hero EZ = new ADHero();
- 右边引用所指向的对象的类型是 物理攻击英雄
- 左边引用的类型是 普通英雄
- 把物理攻击英雄 当做 普通英雄,说不说得通? 说得通,就可以转
- 所有的子类转换为父类,都是说得通的。比如
- 苹果手机继承手机,把苹果手机当做普通手机使用
- 怡宝纯净水继承饮品, 把怡宝纯净水 当做饮品来使用
$.父类转子类(向下转型)
- 父类转子类,有的时候行,有的时候不行,所以必须进行强制转换。
- 强制转换的意思就是转换有风险,风险自担。
public class test {
Hero hero = new Hero();
//向上转型
Hero adHero = new ADHero();
//向下转型
ADHero adHero1 = (ADHero)hero;
}
$.没有继承关系的两个类,互相转换
- 没有继承关系的两个类,互相转换,一定会失败
#.重写
- 子类可以继承父类的对象方法
- 在继承后,重复提供该方法,就叫做方法的重写
- 又叫覆盖 override
注意:如果父类方法使用的static修饰,子类调用的重写方法还是父类的方法;
$,Object类是所有类的父类
- 声明一个类的时候,默认是继承了Object
#.多态
$.操作符的多态
- 同一个操作符在不同情境下,具备不同的作用
- 如果+号两侧都是整型,那么+代表 数字相加
- 如果+号两侧,任意一个是字符串,那么+代表字符串连接
$.类的多态
多态: 都是同一个类型,调用同一个方法,却能呈现不同的状态
要实现类的多态,需要如下条件
1. 父类|接口 引用指向子类对象
2. 调用的方法有重写
抽象类只能被继承
接口除了可以被实现之外,可以被接口继承

浙公网安备 33010602011771号