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: