再去回顾一下static
静态方法的调用 可以直接方法名();
非静态方法的调用要new一个对象的实例.调用
静态在执行时只执行一次
final
final修饰常量值不可以被第二次修改
*final防止多线程下的指令重排序,保障线程安全
final修饰的类不可以被继承
final修饰的方法不可以被重写
抽象类abstract
抽象类的方法必须要由子类实现
抽象类不可以new 只可以由子类实现
抽象方法必须在抽象类中
思考 抽象类存在构造器吗 存在的意义是什么
存在构造器 用于子类实例化使用
接口
接口的所有定义都是抽象的 public abstract 关键字 interface
接口必须要实现类 关键字implements是 实现接口
接口支持多实现
接口不能被实例化 接口中没有构造方法
不可以new 但是可以配合匿名类
内部类
1.成员内部类
public class Outer {
private int id;
public void out(){
外部类方法
}
class Intter{
public void in(){
内部类方法
}
}
}
2. 静态内部类
public class Outer {
private int id;
public void out(){
外部类方法
}
public static class Intter{
public void in(){
内部类方法
}
}
}
3.局部内部类
public class Outer {
public void method(){
class Inner{
}
}
}
4.匿名内部类
public class Test {
public static void main(String[] args) {
new Apple().eat();
}
static class Apple{
public void eat(){
System.out.println(“1”);
}
}
}