1、接口
不支持多继承,但是可以通过接口实现类似多继承。
①不用考虑类之间的关系,只要有相同行为就可以用接口
②类可以实现多个接口,只有常量和方法的定义,没有方法的实现。
public interface InterfaceName{
public method();
}
③接口可以继承多个接口
PS 父类可以引用子类对象(上转型)
2、接口实现
public ClassName implement InterfaceName{
public method(){
//TODO:
}
}
interface 里面的默认变量是public static final ,是常量。
实现接口的类必须把接口的方法实现,即使没方法也留一个空的函数体{};
接口与抽象类的对比;
抽象类比较注重描述继承关系,也就是属性的相似
接口则比较注重方法的传承,注重方法实现。
3、内部类
在类里面生命一个类就是内部类。
内部类是外部类的专享,使用的时候内部类可以访问外部类的方法和属性。
class OuterClass{
class InnerClass{
}
}
4、匿名类
匿名类可以用内部类来实现,
this.addWindowListener(new WindowListener() {
}
其中WindowListener是接口,这样new并不是实例接口,而是实例化一个没有名字而实现该接口的类。
当匿名类里面的方法比较少的而且用的次数少时候建议用匿名类 。
反之则用内部类