接口 interface
接口就是比“抽象类”还抽象的抽象类,一个完全抽象的类,抽象类的抽象类。
接口中的所有方法都是抽象的,即使没有显示的将接口中的成员用public标识,也是public访问类型的,
接口中变量默认用 public static final 标示,所以接口中定义的变量就是全局静态常量。
如何实现接口
子类通过implements来实现接口中的规范。
接口不能创建实例,但是可用于声明引用变量类型
一个类实现了接口,必须实现接口中所有的方法,并且这些方法只能是public的
java类只支持单继承,接口实现多继承。
1、普通类可以继承普通类
2、普通类可以继承抽象类
3、普通类可以实现接口
4、抽象类可以继承普通类
5、抽象类可以继承抽象类
6、抽象类可以实现接口
7、接口可以多继承接口
内部类
顾名思义,就是一个类里面又写了一个类 ,内部类作为外部类的成员,可以直接访问外部类的成员(包括private成员)反之则不行。
public class Outer {
int a = 100;
//内部类的调用 需要通过外部类的方法
public void run(){
//创建一个对象 利用 内部类
Inner i = new Inner();
//内部类才可以调用 内部类的方法和属性
i.info();
System.out.println(a);
}
public void eat(){}
//内部类 作为属性存在
//成员内部类
class Inner{
//内部类可以随便访问 外部类的 属性
int a=10;
public void info(){
System.out.println(a);
}
}
//main 方法
public static void main(String[] args) {
//main方法也只是可以 访问外部类 内部类不可以
Outer oo = new Outer();
oo.run();
}
}
内部类 分为:
成员内部类 相当于成员
静态内部类 加static 修饰
方法内部类 方法里面的类
匿名内部类 可以实现一个接口 或者继承一个父类 只能实现一个接口 (new出来的接口 补出来的内容 相当于匿名内部类)
垃圾回收机制 Garbage Collection
垃圾回收机制只回收JVM内存对内存里的对象空间。
具有不可预知性 ,无法精确控制其执行
永远不要调用某个对象的finalize方法,应该交给垃圾回收机制调用