super关键字和函数覆盖(Override)

本文深入探讨Java中继承机制及方法覆盖的概念,通过实例展示了如何在子类中重写父类方法,以及覆盖方法的注意事项。具体分析了类间的继承关系、方法覆盖的条件、覆盖方法的权限要求,并通过代码示例直观地演示了覆盖方法的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.3 super关键字

(1)super:代表的是父类,用法和this相似。可以使用super调用父类中构造方法,成员变量与成员方法。例如:super.age=10;其中age是父类中的变量。
(2)this代表本类对象的引用,即父类的内存空间的标识,super代表父类所属的空间。
(3)当子父类出现同名成员时,可以用super进行区分。
(4)子类要调用父类构造函数时,可以使用super语句。
详见“4.5子类实例化过程”中super的使用。

4.4 函数覆盖(Override)

覆盖也称之为覆写或者重写,使用环境:
(1)出现在具有父子关系的两个类中
(2)父类和子类都有一个函数,这两个函数的定义(函数名,参数列表,返回值类型)完全相同。

package com.override;
public class Person {
    String name;
    int age;
    void introduce(){
    System.out.println("我的名字是:"+name+",我的年龄是:"+age);
}
}
package com.override;
public class Student extends Person{
    String address;
    void introduce(){
        System.out.println("我的名字是:"+name+",我的年龄是:"+age+",我的住址是:"+address);      
    }
}
package com.override;
public class Test {
    public static void main(String[] args) {
        // 生成子类对象,调用子类的方法
        Student a=new Student();
        a.name="哈哈";
        a.age=10;
        a.address="杭州市西湖区";
        a.introduce();
        // 生成父类对象,调用父类的方法
        Person b=new Person();
        b.name="哦哦";
        b.age=20;
        b.address="北京市朝阳区";
        b.introduce();
    }
}

运行结果:
这里写图片描述
从上面的运行结果可知:
(1)生成子类对象,调用子类的方法,生成父类对象,调用父类的方法。
(2)当在具有继承关系的父子类中,对父类的方法不满意,可以通过在子类中重写的方式进行修改。
覆盖注意事项:
(1)子类覆盖父类时,必须要保证覆盖方法的权限大于等于被覆盖的方法的权限。
(2)覆盖方法有静态修饰时,静态只能覆盖静态,或者被静态覆盖。在写法注意这个事项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值