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);}}
输出为
wangwu2.属性没有多态性,属性值取决于引用类型
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