1.7Oob封装 继承 访问修饰符 静态和构造方法的执行顺序

1:访问修饰符  

private     同类中

默认        同类        同包

protect    同类         同包      子类

public     同类        同包        子类         其它任何地方

2:导包

当两个类同名时  需要进行导包以区分,

3:继承

1)继承成员变量,但与访问修饰符有关系。

4:继承中的构造方法

1)子类中的构造方法默认调用父类的无参构造,如果用super在子类构造中调用父类的有参构造就会将父类的无参构造覆盖,如果在子类构造方法中用this调用

子类其它构造方法也会将父类默认无参构造进行覆盖;

2)子类的同一个构造方法中不可以同时存在super和this因为他们都需要放在方法里面的第一行。

5:子类调用父类的无参构造方法 super(),子类调用父类的有参构造方法super(参数);

6:静态方法,静态代码块,构造方法

1)执行顺序:

静态方法1      静态方法 2     静态方法3

静态代码块4   静态代码块6     静态代码块8

构造方法 5      构造方法7         构造方法9

2)如果创建两个对象对子类进行调用   静态方法只执行一次,静态代码块和构造方法执行两次

public class A {

    static {
        System.out.println("static A");
    }
    
    
    {
        System.out.println("cdoe A ....");
    }
    
    public A() {
        System.out.println("con A");
    }
}
public class B  extends A{


    static {
        System.out.println("staticB");
    }
    
    
    {
        System.out.println("cdoeB ....");
    }
    
    public B() {
        super();
        System.out.println("con B");
    }
    
    
}
public class C  extends B{

    static {
        System.out.println("static C");
    }
    
    
    {
        System.out.println("cdoe C ....");
    }
    
    public C() {
        super();
        System.out.println("con C");
    }
}

public class Test {

    public static void main(String[] args) {
        C c = new C();
        //
        C c2 = new C();
        
    }
}

7:

猜你喜欢

转载自www.cnblogs.com/wan19890618123/p/10670330.html