继承性(继承的限制)

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 }}
View Code

但是不能访问私有属性,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()是会出现构造递归调用---死循环

猜你喜欢

转载自www.cnblogs.com/linzhouyang/p/10686075.html
今日推荐