抽象类
abstract 关键字表明一个抽象方法或抽象类,包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的
如果从一个抽象类继承并想创建该新类的对象,那么就必须为基类中的所有抽象方法提供定义,如果不这样做,那么导出类便也是抽象类,且编译器将会强制我们用abstract关键字来限定这个类
interface
interface不仅仅是一个极度抽象的类,因为它允许人们通过创建一个能够被向上转为多种基类的类型
接口可以包含域,但是这些域隐式地是static和final的
public interface仅限于该接口在与其同名的文件中被定义。如果不添加public关键字,则它只具有包访问权限
Java中一个派生类只能从一个基类继承,但可以继承任意多个接口,并可向上转型为每个接口
内部类
内部类的对象可以访问其外围对象的所有成员及所有元素
内部类的对象只能与其外围类的对象相关联的情况下才能被创建。构建内部类对象时,需要一个指向其外围类对象的引用,如果编译器访问不到这个引用,就会报错。
内部对象要生成对外部类对象的引用,可以使用外部类的名字后面紧跟圆点和this
创建某个内部类的对象,通过.new语法:
DotNew dn=new DotNew(); //外部类的对象
DotNew.Inner dni=dn.new Inner(); //内部类的对象
在拥有外部类对象之前是不可能创建内部类对象的
内部类的用武之地在于其向上转型为一个接口的时候