标签:构造方法 sys hid hide 错误 死循环 set 隐藏 sytem
1,java不予许多重继承,只能多层继承
eg:class A {}//一个人只有拥有一个亲生父亲
class B extends A{}//子类
class C extends B{}//孙子类
一般不超过3层
2.子类在继承父类的时候严格来讲会继承父类的全部操作,私有操作属于隐式继承,非私有的为显示继承。
1 class A { 2 private String msg; 3 public void setMsg(String msg){ 4 this.msg= msg; 5 } 6 public String getMsg(){ 7 return this.msg; 8 } 9 class B extends A { 10 public void fun(){ 11 System.out.println("B") 12 public class Demo { 13 public static void main (String args[]){ 14 B b = new B(); 15 b.setMsg("Hello"); 16 Sytem.out.printlb(b.getMsg()); 17 }}
但是不能访问私有属性,eg:
public void fun(){
System.out.println(msg)
}错误;
3.在子类对象构造前一定会先调用父类的构造(默认无参构造)
1 class A{ 2 public A(){ 3 System.out.println("A的无参构造"); 4 5 } 6 class B extends A{ 7 public B(){ 8 System.out.println("B的无参构造"); 9 } 10 } 11 } 12 public class StringDemo1 { 13 public static void main(String args[]){ 14 new B(); 15 } 16 }
一定会先实例化父类再实例化子类,调用父类的无参构造方法;
相当于子类隐藏了一个super();
super()主要是由子类调用父类的构造方法,放在构造方法首行与this一样
如果子类没有super()方法而用this()是会出现构造递归调用---死循环
标签:构造方法 sys hid hide 错误 死循环 set 隐藏 sytem
原文地址:https://www.cnblogs.com/linzhouyang/p/10686075.html