版权声明:版权声明:转载必须注明本文转自StathamJ的博客:https://blog.csdn.net/qq_41664447 https://blog.csdn.net/qq_41664447/article/details/85293697
前言
- Java中多态使用父类引用指向子类对象,再调用某一父类中的方法时,不同子类会表现出不同结果。
- 多态的作用:这样的作用就是扩展性极好,玩过网游的话应该知道 游戏中有不同的角色,它们都有一个父类,它们做相同动作时表现出来的效果就会不一样,比如跑,魔法师的跑跟战士的跑就不会一样,这就是俩者都覆盖了父类中的跑方法,各自有自己的现实,表现出来多态。
- 多态的优点:如果有一天你想再加个角色,只用再写一个类继承该父类,覆盖其中的跑方法就行了,其他代码不用怎么改,所以可维护性也很好。
- 代码举例(带解析)
- 设置情境:你的妻子(cjk)喜欢听鸟叫声,而且每天喜欢听不同声音的鸟叫声。
public class 多态test {
public static void main(String[] args) {
//实例化一个妻子cjk
Wife cjk=new Wife();
System.out.println("*******这是第一天想听鹦鹉叫*******");
//cjk今天想听鹦鹉叫,传入一个鹦鹉对象
cjk.listen(new Parrot());
System.out.println("*******这是第二天想听麻雀叫*******");
//cjk今天想听麻雀叫,传入一个麻雀对象
cjk.listen(new Sparrow());
}
}
//一个鸟类
class Bird{
//鸟会叫
void moo(){
System.out.println("鸟类的叫声");
}
}
//一个鹦鹉类
class Parrot extends Bird{
//重写鸟类中的moo方法
void moo(){
System.out.println("鹦鹉的叫声");
}
}
//一个麻雀类
class Sparrow extends Bird{
//重写鸟类中的moo方法
void moo(){
System.out.println("麻雀的叫声");
}
}
//一个妻子类
class Wife{
//妻子喜欢听鸟叫声
void listen(Bird bird){
bird.moo();
}
}