Java多态

时间:2022-12-23 19:59:24
什么是多态?

同一个引用类型,使用不同的实例来执行不同的操作;

同一个父类,使用不同的子类对象执行不同的操作。

多态的实现:

1、声明父类创建子类(向上转型:子类转为父类 自动类型转换)

例如:把狗狗类变成宠物类使用

Pet dog=new Dog();

例如:把猫类变成宠物类使用

Pet cat=new Cat();

注意:

1、多态一定要有继承关系

2、子类重写父类的方法

3、父类引用指向子类对象

2、将父类强制转换为子类,前提必须有继承关系(向下转型 父类转换为子类 强制类转换)

例如:将宠物强制变为我狗狗,才能使用特有方法

Dog dog=(Dog)pet;

dog.swimming();

例如:将宠物强制变为猫类使用,才能使用特有方法

Cat cat=(Cat)pet;

cat.patree();

注意:向下转型时,必须转换位父类指向的真实子类

强制转换的类型必须是原来创建的子类类型

实现多态的两种形式:

1、使用父类作为方法的形参实现多态

2、使用父类作为方法的返回值实现多态

instanceof运算符:

判断对象是否引用某个类或接口

例如:pet instanceof Dog 如果pet是Dog创建的对象,返回true,否则返回fslae


什么样的情况使用多态?

1、子父类关系

2、重复使用子类的时候

什么情况需要向下转型(强制转换)?

1、调用子类特有方法时

2、调用子类特有属性

例如: 主人喂养宠物 鸡、鸭、兔子、老鼠....

老板发工资(人) 管理层,后勤,保安,前台...

媒婆介绍相亲 凤姐、石榴姐、桥碧萝.....

1、分析类

父类:相亲

子类:凤姐、石榴姐、桥碧萝

调用类(多态):jieshao(相亲人 )