25. java面向对象 - 多态
一、定义
多态性的使用前提:① 类的继承关系 ② 要有方法的重写
instanceof关键字使用:a instanceof A,判断对象a是否为类A的实例
public class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void eat() {
System.out.println("父-吃饭");
}
public void sleep() {
System.out.println("父-睡觉");
}
}
public class Man extends Person {
public Man(String name, int age) {
super(name, age);
}
public void eat(){
System.out.println("男人吃肉");
}
}
public class Woman extends Person {
public Woman(String name, int age) {
super(name, age);
}
public void eat() {
System.out.println("女人吃菜");
}
}
public class PersonTest {
public static void main(String[] args) {
// 对象的多态性:父类的引用指向子类的对象
Person p1 = new Man("小明", 10);
Person p2 = new Woman("小红", 11);
//多态的使用,当调用子父类同名同参数方法时,实际执行的是子类重写父类的方法[虚拟方法调用]
p2.eat();
//判断对象p2是否为类Woman的实例
if(p2 instanceof Woman){
System.out.println("√");
}
}
}