大家好!我来了,我是那个菜的不能再菜的JavaOOP入门者
笔记:
多态:在Java中,具有表现出多种形态能力的特征我们称为多态(同一个类或接口,使用不同的子类实例实现不同的操作);
优点:减少代码量,提高代码的可扩展性和可维护性;
实现多态的方式:目前我们只需要知道有方法重写、继承;
使用父类作为方法的形参,使用父类作为方法的返回值类型;
继承是多态的基础,没有继承就没有多态;
在java中,所有的方法都是虚方法(就是子类可以重写的方法);
类型转换:将子类转换成父类我们叫它向上转型:
父类 父类对象 = new 子类(); //现在父类对象其实是子类的实例
将父类转换成子类我们叫它向下转型:
子类 子类对象 = (子类) 父类; //如果子类父类对象不是子类的话就会出现ClassCastException错误(意思就是出现类型转化异常);
这个问题怎么解决呢?
答:用instanceof(检查实例)关键字来检查对象的真实类型;
if(父类 instanceof 子类) { // 就是说如果当前父类对象类型属于子类,结果为true,执行方法体
子类 子类对象 = (子类) 父类
}
instanceof有点:有效避免类型转换异常报错,增加代码的健壮性;
上机:
使用多态实现主人给宠物喂食和玩耍功能(如图):


浙公网安备 33010602011771号