java--多态

什么是多态?

多态就是同样的方法,但参数不同。

使用多态的便捷

可以减少代码的重复

多态的使用

/*
* 主人类
*
*/
public class Master{
/*
*相同的feed方法但是参数不同
*
*/

public void feed(Dog dog){  //狗狗吃东西
dog.eat();



}
public void feed(Penguin pgn){  //企鹅吃东西
pgn.eat();


}



}

 注意:

1.必须是继承

2.在子类中需要从写父类

 3.父类的引用指向一个子类对象

子类到父类的转换(向上转型)

Dog dog=new new Dog("欧欧","雪瑞纳");  
dog.eat();
Pet pet=new Dog(); //子类到父类的转换
Pet.pet();    //会调用Dog并重写eat()方法

注意:

1.父类引用变量和调用方法时,调用的是子类重写后的方法

2.无法通过父类调用子类的特有方法 

 父类作为方法形参实现多态

/*
*
*主人给宠物喂食物
*/
public void feed(Pet pet){
     pet.eat();

}




public static void main(String [] args){
     Master master=new Master("王先生",100);    
     Pet pet=new Dog("欧欧","雪纳瑞");
       master.feed(Pet);  //主人给宠物喂食物

}

 可以看到多态:可以减少代码量,提高代码的可扩展性和可维护性

父类方法返回值实现多态

/**
* 主人领养宠物
*/
public Pet getPet(int typeId) {
        Pet pet=null;
        if(typeId==1) {
            pet=new Dog("欧欧", "雪纳瑞");
        }else if(typeId==2){
            pet=new Penguin("楠楠", "Q妹");
        }
        return pet;    //返回宠物
    }



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

2.子类重写父类的方法

3.父类引用变量指向子类对象

 父类到子类的转换(向下转型)

Pet pet=new Dog();

Dog dog=(Dog)pet;(强制类型转换)

使用 instanceof 运算符

  1. 用于判断类型,检测对象的真是类型,返回true/false

  2. 避免类型转换异常

  3. 对象 instanceof 类/接口  pet instanceof Dog(判断宠物对象是否为Dog类型)

  4. 对象的类型和类必须具有上下级关系(继承),一般与强制类型结合使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值