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

来源:互联网 发布:动态相册软件 编辑:程序博客网 时间:2024/05/01 09:59

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)覆盖方法有静态修饰时,静态只能覆盖静态,或者被静态覆盖。在写法注意这个事项。

1 0