0
点赞
收藏
分享

微信扫一扫

面向对象网课第四节 ---- 多态

_铁马冰河_ 2022-01-14 阅读 162

一、多态的概念

什么叫做多态

1、生活中的多态:不同类型的打印机效果不同(即同一种事物,由于条件不同,产生的结果也不同)。

2、程序中的多态:多态:同一个引用类型,使用不同的实例而执行不同操作

二、如何实现多态

1、使用多态实现思路

--编写父类

-- 编写子类,子类重写父类方法

--运行时,使用父类的类型

2、实现多态的两种形式

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

--使用父类作为方法返回值实现多态

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

1、实现多态优化主人给宠物喂食

public class Master

public void feed (Pet pet){

pet.eat();

                }

}

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

1、使用多态实现领养宠物

---使用父类作为方法返回值

---实现思路

----在Master类添加领养方法getPet(String typeld)

----创建测试类,根据主人选择宠物类型编号来领养宠物

--public class Master{

        public Pet getPet(String  typeld)                }        

...        ...

}

五、多态示例代码

package object;
public class TestPolym { class Animal {
int age=10;
public void shout(){
System.out.println("叫了一声!");
public static void main(String[] args) {
Animal animal = new Dog(); //向上可以自动转型
System.out.println(animal.age); //属性调用时,仍然是基类的属性 }
// animal.shout(); }
class Dog extends Animal {
int age=28;
animalCry(new Dog());
//传的具体是哪一个类就调用哪一个类的方法。大大提高了程序的可扩展性。
//如果没有多态,我们这里需要写很多重载的方法。如果增加一种动物,就需要 public void shout() {
System.out.println("旺旺旺!");
}
//有了多态,只需要增加这个类继承Animal基类就可以了。
animalCry(new Cat());
Dog dog = (Dog) animal; //编写程序时,如果想调用运行时类型的方法
dog.gnawBone();
System.out.println(dog instanceo
System.out.println(animal instanceof Cat);
System.out.println(animal instanceof Dog);
public void gnawBone(){
System.out.println(“我在啃骨头");
}
}
} class Cat extends Animal {
int age=18;
public void shout() {
System.out.println("喵喵喵喵!");
}
static void animalCry(Animal a){
a.shout();
}
举报

相关推荐

0 条评论