立即学习:https://edu.youkuaiyun.com/course/play/27274/361067?utm_source=blogtoedu
Java 面向对象
Java 多态
Java多态
一个方法有多种状态,使程序更具有扩展性,依赖一个抽象的类或接口
向上类型转换
// 将cat返回成Animal类型,cat不能调用Cat类型的方法
Animal cat = new Cat();
方法的动态绑定
Animal cat = new Cat();
Animal dog = new Dog();
PS:同一个package中不能有两个相同名称的类(或 接口)
package com.zsk.pol;
public class Demo11 {
public static void main(String[] args) {
// 方法的动态绑定
Animal dog = new Dog();
dog.eat();
dog.sleep();
Animal cat = new Cat();
cat.eat();
cat.sleep();
// cat 返回是Animal类型,不能调用Cat类型的方法
// cat.play();
Animal bird = new Bird();
Person p = new Person();
p.care(bird);
}
}
// 多态:程序扩展性好
class Person{
// 输入参数为一个Animal实例
public void care(Animal a) {
a.eat();
a.sleep();
}
}
interface Animal{
public void eat();
public void sleep();
}
class Bird implements Animal{
@Override
public void eat() {
System.out.println("bird eat..");
}
@Override
public void sleep() {
System.out.println("bird sleep..");
}
}
class Dog implements Animal{
@Override
public void eat() {
System.out.println("dog eat..");
}
@Override
public void sleep() {
System.out.println("dog sleep..");
}
}
class Cat implements Animal{
@Override
public void eat() {
System.out.println("cat eat..");
}
@Override
public void sleep() {
System.out.println("cat sleep..");
}
public void play() {
System.out.println("cat play...");
}
}