1.什么是多态(polymorphism)
官方来讲:指为不同数据类型的实体提供统一的接口
首先:
多态多态可分为
变量多态+函数多态
还可分为
动态多态+静态多态
通俗来讲既 一种方法被不同对象使用会产生不同的行为
eg:吃饭 可以用筷子 直接用手 用刀叉
eg:一个对象的实际类型是确定的,但指向对象的引用类型可以有很多
存在条件
有继承关系
子类重写父类方法
父类引用子类对象
一个小案例
宠物类
public class Test {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
System.out.println("请输入动物类:");
String s = scanner.next();
Test test = new Test();
//test.getAnymore(s).mm();
Anymore a =test.getAnymore(s);
//父类引用指向子类对象
a.mm();
//
scanner.close();
}
public Anymore getAnymore(String name){
switch (name){
case "cat" :return new Cat();
case "dog" :return new Dog();
default: return new Anymore();
}
}
class Anymore{
public void mm() {
System.out.println("Anymore");
}
}
class Cat extends Anymore{
//重写父类方法
public void mm(){
System.out.println("猫猫");
}
}
class Dog extends Anymore{
//重写父类方法
public void mm(){
System.out.println("狗狗");
}
}
}