您的位置:首页 > 编程语言 > Java开发

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

2016-04-06 14:54 393 查看

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)覆盖方法有静态修饰时,静态只能覆盖静态,或者被静态覆盖。在写法注意这个事项。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java super override 覆盖