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. 调用的方法有重写
抽象类只能被继承
接口除了可以被实现之外,可以被接口继承
posted @ 2022-08-01 14:32  海、蓝天与梦想  阅读(45)  评论(0)    收藏  举报