什么是多态

什么是多态

什么是多态

多态是具有表现多种形态的能力的特征(专业说法:同一个接口实现不同的实例而执行不同的操作)。

使用多态有什么优点

减少代码量

实现多态有哪几种方式

实现多态的条件

  1. 必须存在继承
  2. 子类重写父类
  3. 父类引用变量指向子类

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

例:Pet pet=new Dog();

规则

  1. 将一个父类的引用指向一个子类对象
  2. 通过父类引用变量调用方法时 ,调用的是子类重写之后的方法
  3. 无法通过父类引用变量调取子类的特有方法

两种实现方式

  1. 将父类作为方法形参

  2. /**
    *  喂养宠物
    */
    public void feed(Pet pet) {
            pet.eat();
        }
    

    3.将父类作为方法返回值

/**

领养宠物
*/
public Pet getPet(int typeId) {
Pet pet=null;
if(typeId1) {
pet=new Dog(“欧欧”, “雪纳瑞”);
}else if(typeId
2){
pet=new Penguin(“楠楠”, “Q妹”);
}
return pet;
}
```

2.向下转型(父转子)

例:Pet pet=new Dog();

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

instanceof 运算符

含义:用于判断类型,检测对象的真是类型,返回true/false

作用:避免类型转换异常

声明: 对象 instanceof 类/接口

例:pet instanceof Dog(判断宠物对象是否为Dog类型)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值