多态:指一个实体同时具有多种形态,同一个对象在不同的时刻,代表不同的对象状态,指的是对象有多种形态
例如:
妈妈叫你去买水果,西瓜、哈密瓜、苹果、香蕉、葡萄这些都是水果
在不同的季节,能吃到的水果是不一样的,水果就是多态的体现
多态可以把不同的子类对象都当作父类来看,进而屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,统一调用标准
多态对象只能调用父类中定义子类中重写的功能,并不能调用子类的特有功能,这样就实现了代码的统一
多态使用要满足三个条件:
重写多态体现:在代码运行时,当传递不同类对象时,会调用对应类中的方法
下面来练习多态的使用:
//使用多态必须使用是继承、重写
//父类
class Animal {
String name; // 名字
// 父类的方法
public void eat() {
System.out.println(name + "吃东西");
}
// 父类的构造方法
public Animal(String name) {
this.name = name;
}
}
// 狗类 子类继承父类
class Dog extends Animal {
public Dog(String name) {
super(name);//初始化父类的构造方法
}
//添加重写方法,方法名、参数列表都要一模一样
public void eat() {
this.name = "小狗";
System.out.println(name + "吃肉骨头!");
}
// Dog 子类特有的功能
public void run() {
System.out.println(name + "正在看家!");
}
}
// 猫类
class Cat extends Animal {
public