Java中面向对象的特征之三(多态)
程序员文章站
2022-05-25 20:42:45
...
多态
定义:代码执行过程中呈现的多种形式—称为多态
Java分为编译时期,运行时期
编译时多态—在编译时期绑定代码
—体现形式相当于–重载(在同一个类中,方法名相同,参数列表不同)
Public void m( ){……}
Public void m(int i){……}
运行时多态—在运行时期绑定代码
—体现形式相当于—重写,向上造型(继承)
package cn.tedu.duotai;
public class DTDemo {
public static void main(String[] args) {
/* //养个宠物
Pet p;
//养的宠物就是一条狗
p=new Dog();*/
//左边声明类是父类,右边实际创建类是子类---向上造型
Pet p=new Dog();
//向上造型对象可以调用哪些方法看父类
//方法的具体执行要看子类是否有重写方法
p.eat();
//调用方法
//匿名对象是当做参数来传递
m(new Pet());
m(new Dog());
m(new Cat());
}
//可以接收本类对象以及所有的子类对象
public static void m(Pet p){//=new Pet(); =new Dog(); =new Cat();
p.eat();
}
}
//定义代表宠物的类
class Pet{
public void eat(){
System.out.println(“在吃东西。。。”);
}
public void sleep(){
System.out.println(“在睡觉。。。”);
}
}
//定义代表狗的类
class Dog extends Pet{
//重写eat方法
public void eat(){
System.out.println(“在呼哧呼哧的吃。。。”);
}
public void brak(){
System.out.println(“在汪汪汪的叫。。。”);
}
}
//定义代表猫的类
class Cat extends Pet{
//重写eat方法
public void eat() {
System.out.println(“在呼哧呼哧的吃。。。”);
}
public void 磨爪子(){
System.out.println("在哼哧哼哧的磨爪子。。。");
}
}
X-Mind脑图梳理: