JAVA基础——多态是如何实现的(类的继承和接口的实现,方法的重载和重写,父类引用子类对象,静态多态和动态多态)


众所周知,多态是面向对象语言中非常重要的一部分,多态在Java中究竟是如何实现的呢?

什么是多态

多态顾名思义,就是同一操作作用于不同对象,有不同的解释,实现不同的效果,产生不同的执行结果。

多态的必要条件

要想实现多态,必须要满足三个必要条件
1.有类的继承关系或者实现接口
2.子类要重写父类的方法
3.父类的引用指向子类的对象

类的继承和接口的实现

在Java中,不仅有类的继承,还有接口的实现。

类的继承

在Java中,类与类之间可以继承。使用extends关键字来实现,其语法结构为:
class SubClass extends SuperClass{

//类体的定义

}
被继承的类叫做父类或者超类,继承父类的类叫做子类或者派生类。
和C++不同,在Java语言中,只允许单继承,也就是一个子类只能有一个父类,但一个父类可以有多个子类。
如果B类继承了A类,C类继承了B类,那么C类就间接继承了A类。
如果一个类后面不跟extends,那么它默认继承Java中的Java.lang.object类。
所有的类都直接或间接的继承了Object类。
子类继承了父类中的非private的属性和方法,同时,子类也可以有自己的成员和方法。
super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
this关键字:指向自己的引用。
子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。
如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器。
例:

public class Test{  //定义了Test类
    private int a;
    public int b;
    protected int c;
    int d;
    
    public Test(int a, int b, int c, int d) {   //定义了Test类的有参构造器
        this.a = a;
        this.b = b;
        this.c = c;
        this.d = d;
    }

    void method(){
        System.out.println(a);
    }
}
class TestTwo extends Test{  //定义了Test2类来继承Test类
    public TestTwo(){
        super(1,2,3,4); //使用super关键字来调用父类的有参构造器,1,2,3,4分别代表a,b,c,d的值。
    }
    int e;
    voi
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CHB爱Study

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值