大家好!我来了,我是那个菜的不能再菜的JavaOOP入门者

笔记:

多态:在Java中,具有表现出多种形态能力的特征我们称为多态(同一个类或接口,使用不同的子类实例实现不同的操作);

优点:减少代码量,提高代码的可扩展性和可维护性;

实现多态的方式:目前我们只需要知道有方法重写、继承;

                      使用父类作为方法的形参,使用父类作为方法的返回值类型;

                      继承是多态的基础,没有继承就没有多态;

在java中,所有的方法都是虚方法(就是子类可以重写的方法);

类型转换:将子类转换成父类我们叫它向上转型:

父类   父类对象 = new 子类();  //现在父类对象其实是子类的实例

              将父类转换成子类我们叫它向下转型:

子类  子类对象 = (子类) 父类;  //如果子类父类对象不是子类的话就会出现ClassCastException错误(意思就是出现类型转化异常);

这个问题怎么解决呢?

答:用instanceof(检查实例)关键字来检查对象的真实类型;

     if(父类  instanceof  子类) {    // 就是说如果当前父类对象类型属于子类,结果为true,执行方法体

                   子类  子类对象 = (子类) 父类

}

instanceof有点:有效避免类型转换异常报错,增加代码的健壮性;

 

上机:

使用多态实现主人给宠物喂食和玩耍功能(如图):

 

 

 

     

 

posted on 2016-06-08 23:21  张张张宝  阅读(319)  评论(0)    收藏  举报