• 字面量
    • 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()