一、面向对象的三大特征——多态
1.OPP三大特性:封装,继承,多态
多态:可以理解为事物存在的多种形态
例如:
动物:猫,狗,猪
人: 男人 女人
2.多态的体现
父类引用指向子类对象
3.多态的前提
(1)必须得类与类之间存在关系,可以是继承关系也可以是实现关系
(2)必须得有重写
4.多态的好处
大大提高了程序的可扩展性
5.多态的弊端
提高的程序可扩展性,只能用于父类的引用,访问到父类中的成员
多态成员变量的特点:
(1)编译期间:参阅的是引用型变量所属的类中是否有调用的方法
(2)运行期间:参阅对象所属的类中是否有调用的方法
class Animal{
}
class Dog extends Animal{
void sing(){
System.out.println("汪汪的唱歌");
}
}
class Cat extends Animal{
void sing(){
System.out.println("喵喵的唱歌");
}
void catchMouse(){
System.out.println("捕鼠");
}
}
class Pig extends Animal{
void sing(){
System.out.println("猪之歌");
}
}
public class A6_24{
public static void main(String[] args){
Cat c1=new Cat();
function(c1);
}
public static void function(Animal c){//Animal c=new Cat();
Cat c1=(Cat)c;//向下转型后可以访问catchMouse,因为不转型只能访问在父类中存在的方法
c1.catchMouse();
}
}