03 多态梳理

2019-01-17  本文已影响0人  WarrenYang

2. 多态的定义

事物在运行过程中存在不同的状态

3. 多态的存在有三个前提:

1.要有继承关系 extends
2.子类要重写父类的方法 override
3.父类(接口)的引用指向->子类(实现)的对象

4. 成员特点

点这里

5. 多态的弊端

不能使用子类特有的成员属性和子类特有的成员方法。

6. 代码举例

public class Xiaojie {
    int age = 30;
    static char cup = 'B';
    
    public void service() {
        System.out.println("小姐在服务");
    }
    
    public static void relax() {
        System.out.println("小姐在休息");
    }
    
    public void avoidPolice() {
        System.out.println("小姐在躲警察");
    }
}

public class Waiwei extends Xiaojie{
    int age = 25;
    static char cup = 'D';
    
    @Override
    public void service() {
        System.out.println("外围在服务");
    }
    
    public static void relax() {
        System.out.println("外围在休息");
    }
    
    public void vipService() {
        System.out.println("外围提供VIP服务");
    }
    
    
}


public class Test {
    public static void main(String[] args) {
        Xiaojie wow= new Waiwei();
        wow.service();//重写方法
        wow.relax();//静态方法,不规范
        wow.avoidPolice();//未重写方法,来自子类继承父类的方法
        //wow.vipService();//点不出来,并且报错
        
        System.out.println(wow.age);//左,左
        System.out.println(wow.cup);//静态变量,不规范
        //以上为向上转型
        
        //以下为向下转型
        //目的是访问子类特有变量和方法
        Waiwei ahah = (Waiwei)wow;
        ahah.service();
        ahah.relax();
        ahah.vipService();
        ahah.avoidPolice();//子类继承父类的方法
        System.out.println(ahah.age);
        System.out.println(ahah.cup);
        
    }
}
==================================
外围在服务
小姐在休息
小姐在躲警察
30
B
外围在服务
外围在休息
外围提供VIP服务
小姐在躲警察
25
D
上一篇 下一篇

猜你喜欢

热点阅读