Java对于多态的理解
程序员文章站
2022-05-06 17:51:50
...
多态:同一个事物,在不同时刻体现的不同状态。
多态的前提:
1.要有继承关系
2.要有方法重写。
3.要有父类引用指向子类对象。
父 f=new 子();
class Fu{
public int num=100;
public void show(){
System.out.printIn("show fu");
}
}
class Zi extends Fu{
public int num=1000;
public void show(){
System.out.printIn("show zi");
}
public void method(){
System.out.printIn("method zi");
}
}
class Test{
public static void main(String []args){
Fu f=new Zi();
System.out.printIn(f.num);/ }}
访问特点:
成员变量:编译看左边,运行看左边。
成员方法:编译看左边,运行看右边。
构造方法:创建子类对象时,访问父类的构造方法,对父类的数据进行初始化。
多态的好处:
1.提高代码的维护性
2.提高代码的扩展性
class Animals{
public void eat(){
System.out.printIn("eat");
}
public void sleep(){
System.out.printIn("sleep");
}
}
class Dog extends Animals{
public void eat(){
System.out.printIn("狗吃骨头");
}
public void sleep(){
System.out.printIn("狗站着睡觉");
}
}
class Cat extends Animals{
public void eat(){
System.out.printIn("猫吃鱼");
}
public void sleep(){
System.out.printIn("猫躺着睡觉");
}
}
//动物工具类,可以适用任何动物
class AnimalsTool{
public static void useAnimals(Animals c){
c.eat();
c.sleep();
}
}
class Test{
public static void main(String[]args)
{
Cat c=new Cat();
Dog d=new Dog();
AnimalsTool.useAnimals(c);
AnimalsTool.useAnimals(d);
}
}
多态的弊端:
不能使用子类中的特有功能。(可以使用向下转型的方法)
Fu f=new Zi();
f.show();
Zi z=(Zi)f;
z.show();
z.method();//使用子类中的特有功能
上一篇: 2020 MySQL常问面试题
下一篇: 对于多态的理解