继承——多态

多态的概述

  • 什么是多态
    同一个对象在不同时刻表现出的不同时态

  • 多态的前提
    要有继承或实现关系
    有方法的重写
    有父类引用指向子类对象

多态的访问特点

class Animal{
    int a=10;
    public void eat(){
        System.out.println("动物");
    }
}
class cat extends Animal{
    int a=54;
    int b=89;
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
}
class Dog extends Animal{
    @Override
    public void eat() {
        System.out.println("狗吃翔");
    }
}

public class tes01 {
    /*
           测试多态时调用成员,是调用父类的还是子类的?
           测试多态时调用方法,是调用父类的还是子类的?
     */
    public static void main(String[] args) {
        Animal a=new cat();
        //调用成员
        System.out.println(a.a);
        a.eat();
    }
}

输出结果

在这里插入图片描述

由此可得

- 成员变量
编译时看父类,运行时看父类

- 成员方法
编译时看父类,运行是看子类

多态的转型

package Day02.多态;
class Animal{
    int a=10;
    public void eat(){
        System.out.println("动物");
    }
}
class cat extends Animal{
    int a=54;
    int b=89;
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
}
class Dog extends Animal{
    @Override
    public void eat() {
        System.out.println("狗吃翔");
    }
}

public class tes01 {
    /*
        测试类
     */
    public static void main(String[] args) {
        //向下转型
        Animal a=new cat();
        //向下转型
        cat b=(cat)a;
        a.eat();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值