Java基础知识(四)--多态

微信公众号:Java患者
专注Java领域技术分享

多态

什么是多态

  • 多态是同一个行为具有多个不同表现形式或形态的能力

多态的前提

  • 要有继承/实现关系

  • 要有方法重写

  • 要有父类引用指向子类对象

多态的成员特点

  • Animal a = new Dog();

当代码这个样子的时候,(也就是说当编译类型和运行类型不同)多态就产生了.对象a具有两种类型

编译类型: 声明对象变量的类型,Animal,表示把对象看成什么类型

运行类型:对象的真实类型,Dog

多态中的成员访问特点之成员变量

  • 编译看左边,运行看左边

多态中的成员访问特点之成员方法

  • 编译看左边,运行看右边

多态中的成员访问特点之静态成员方法

  • 编译看左边,运行看左边

  • 静态和类相关,算不上重写,所以,访问还是左边的

  • 只有非静态的成员方法,编译看左边,运行看右边

案例

public class Fu {
    int num = 5;
    static void method1(){
        System.out.println("fu类中的method1");
    }
    void method2(){
        System.out.println("fu类中的method2");
    }
}

public class Zi  extends Fu{
    int num = 8 ;
    static void method1(){
        System.out.println("zi method1");
    }
    void method2(){
        System.out.println("zi method2");
    }
}
public class DuoTaiDemo {
    public static void main(String[] args){
        Fu f = new Zi();
        System.out.println(f.num);//5,与父类一致
        f.method1();//fu类中的method1,与父类一致
        f.method2();//zi method2,编译时与父类一致,运行时与子类一致
        Zi z = new Zi();
        System.out.println(z.num);//8,与zi类中的method一致
        z.method1();//zi method1
        z.method2();//zi method2
    }
}
5
fu类中的method1
zi method2
8
zi method1
zi method2

多态的好处和弊端

  • 提高了代码的维护性(继承保证)

  • 提高了代码的扩展性(多态保证)

  • 不能使用子类特有的属性和行为(弊端)

资料 · 福利

回复 【Java】即可获取最新零基础Java视频资料

回复 【激活】即可获取IDEA、datagrip等系统激活方式

回复 【面试题】即可获取Java技术相关面试题

往期 · 精彩

专注分享Java技术,跟我一起学习吧

长按识别二维码关注

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值