- 字面量
-
public class A {{
...
}}
- 这是匿名构造函数,相当于
-
public class A {
public A() {
...
}
}
- 接口
- 不能定义构造函数
- 只定义抽象方法
- 类成员全部public
- 定义的实际上都是常量
- 不能定义静态方法
- 类可实现多接口
- 函数接口,接口声明默认方法
- default方法
- Collection中添加stream()会打破前版本二进制兼容性(原版本找不到stream而报错),默认方法指定找不到时使用的方法, 维护兼容性
- 可被其它接口继承重写
- 多重继承
- 继承代码块,不继承类状态(属性) # 有些人认为多重继承的问题在于状态的继承
- 冲突报错, 可子类重写解决
- 优先级: 子类 > 类 > 接口
- 抽象类
- 有抽象方法的类
- 可定义构造函数
- 可定义抽象方法和具体方法
- 成员可以是private, default, protected, public
- 可定义成员变量
- 可定义静态方法
- 类只继承一个抽象类
- 接口与抽象类
- 不能实例化
- 可作为引用类型
- 继承的类要实现所有抽象方法,否则还是抽象类
- 抽象方法
- 不能static,static方法不能被重写
- 不能native,native需要实现
- 不能synchronized,synchronized表示一种实现方式
- 静态变量
- 实例变量属于对象实例,有多个
- 属于类,只有一个,实现共享内存
- 内部类
- 静态嵌套类(static nested class), 可不依赖外部类实例被实例化
- 内部类,外部类实例化后才能实例化
- new Outer().new Inner() # 在Outer类中也不能new Innter()