接口 接口中只能定义public并且是final的公共静态常量,不允许定义变量. 抽象类可以定义抽象方法和非抽象方法,接口中只能定义公共的,抽象的实例方法. 接口只能由其他接口实现继承 子接口继承的目的在于拥有父接口功能后添加新定义 任何一个非抽象类实现接口必需实现所有接口中方法(可以使用适配器,就不用都实现了) 接口被实现目的就是实现业务功能具体化 内部类 内部类的作用 内部类通过外部类访问从而被限定使用权限 内部类所定义功能更多时候只为外部类提供 内部类使某些功能使用更加安全 内部类的定义和…
一个类中执行顺序: 静态变量静态代码块代码块构造方法 子类和父类执行顺序: 父类静态变量父类静态代码块子类静态变量子类静态代码块父类代码块父类构造方法子类代码块子类构造方法 直接看代码,一目了然. public class Test { public static void main(String[] args) { new A(); /* 结果: * A静态变量 A静态代码块 A代码块 A构造方法 * */ new B(); /* * 结果: * A静态变量 A静态代码块 B静态变量 B静态代…
class B { public B() { super(); System.out.println("构造器B"); } { System.out.println("普通的代码块B"); } static{ System.out.println("静态代码块B"); } } public class ClassA extends B { public ClassA() { super(); System.out.println("构造…
Java中经常有一些静态块,这是用来在生成类之前进行的初始化,无论java还C++语言中的static,都是最先初始化好的.结构如下: static { 静态语句代码块 } { 非静态语句代码块 } 异同点 相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,一般在代码块中对一些static变量进行赋值. 不同点:静态代码块在非静态代码块之前执行(静态代码块-->非静态代码块-->构造函数). 静态代码块只在第一次new(或者只要访问了就)执行一次,之后不在执行,而非静…
1:访问修饰符 private     同类中 默认        同类        同包 protect    同类         同包      子类 public     同类        同包        子类         其它任何地方 2:导包 当两个类同名时  需要进行导包以区分, 3:继承 1)继承成员变量,但与访问修饰符有关系. 4:继承中的构造方法 1)子类中的构造方法默认调用父类的无参构造,如果用super在子类构造中调用父类的有参构造就会将父类的无参构造覆盖,如…
写了许久的代码,却把一些基础的东西都给忘了,今天无聊就顺手写了个,然后测试下,发现跟我记忆中的竟然有些出入,作为一个两年的开发,我感觉自己很失败啊. 父类pojo: public class Pojo { static { System.out.println("父类的静态代码块"); } { System.out.println("父类的代码块"); } Pojo() { System.out.println("父类的无参构造方法"); } P…
public class HelloB extends HelloA{ public HelloB() { System.out.println("HelloB"); } { System.out.println("I am B class"); } static{ System.out.println("static B"); } public static void main(String[] args){ System.out.printl…
1.局部代码块 位置:位于类的方法中 表示方法:{} 作用:控制变量的生命周期,减少内存消耗 demo: public class LocalCode { public static void main(String [] args){ int y = 10; { int x = 20; System.out.println(x); } System.out.println(y);//运行到此时x变量已被垃圾收集 } } 2.构造代码块 位置:位于类中 表示方法:{} 作用:用于给每个对象进行初…
一个类中的数据初始化顺序是面试官非常喜欢出的面试题之一,本文用一个实例来介绍java中子类.父类中静态代码块.字段,非静态代码块.字段以及构造函数的执行顺序和次数. 一.包结构…
4.指出下面程序的运行结果. class A { static { System.out.print("1"); } public A() { System.out.print("2"); } } class B extends A{ static { System.out.print("a"); } public B() { System.out.print("b"); } } public class Hello { pu…