代码块:出现在类中的任何位置{}。限定变量的作用域。
动态代码块:每次实例化一次,执行一次。
先执行静态代码块,再次执行动态代码块,再执行构造器。
抽象类,通过子类去实现方法。抽象类中的方法,通过子类去覆写
implaments 关键字实现接口的关联
interface接口中的方法都是抽象abstract方法。
内部类:在类中嵌套的类称为内部类。一个 static 的内部类可以使用外部类的名字所访问 。 一个 static 的内部类不能访问外部类中非静态的成员 。
外部类必须要导入,内部类不需要导入包。
内部类可以直接访问到外部类中的变量。
如果要在内部类中访问外部类的方法,要在内部类中加上外部类的类名.this.方法名。
导入内部类的包名后,实例化时可以不用输入外内类的类名
匿名内部类可以当做参数传递,以匿名内部类当中的定义实例化对象传递。
public static void main(String[] args) {
Outer3 outer3 = new Outer3();
// 匿名内部类可以当做参数进行传递
// 以匿名内部类当中的定义实例化的对象
outer3.test(new Teach() {
@Override
public void review() {
System.out.println("课前复习");
}
@Override
public void exam() {
System.out.println("随堂练习");
}
});
其中Outer3.test()调用test()方法,方法里有new teach形参。这个new Teach表示是实例化一个Teach,把Teach类里定义的两个方法传过来。