supre关键字

来源:互联网 发布:离线数据大魔王 编辑:程序博客网 时间:2024/05/21 13:23

继承注意几点:

1.属性不可重写,但可以覆盖

public class A {String name;public A() {this.name = "zhangsan";}}

public class B extends A {String name = "wangwu";public static void main(String[] args) {B b= new B();System.out.println(b.name);}}

输出为 
wangwu
2.属性没有多态性,属性值取决于引用类型

public class B extends A {String name = "wangwu";public void fun() {System.out.println("b class fun() excuting....");}public static void main(String[] args) {A b= new B();System.out.println(b.name);b.fun();}}

输出为

zhangsanb class fun() excuting....

3.方法可以重写,方法有多态性,方法的行为取决于对象而不取决于引用类型。

4.生成子类对象必须调用父类构造方法,子类构造方法必须和父类构造方法匹配。

public class B extends A {String name = "wangwu";public void fun() {System.out.println("b class fun() excuting....");}B(){System.out.println("B() is constructor....");}B(String name){super(name);System.out.println("B(string) is constructor....");this.name = name;}public static void main(String[] args) {A b= new B("赵六");System.out.println(b.name);b.fun();}}

输出结果

A(string) is constructor....B(string) is constructor....赵六b class fun() excuting....

super 关键字

1.引用父类对象的属性和方法

2.调用父类构造方法

B(String name){super(name);//调用构造方法必须放在第一句System.out.println("B(string) is constructor....");System.out.println("super name is "+ super.name);this.name = name;}




0 0
原创粉丝点击