关键字final
- final标记的类不能被继承。
- final标记的方法不能被子类重写。
- final标记的变量即称为常量,名称大写,必须显式赋值且只能被赋值一次。(常量一般大写,用下划线连接)
- final static一起修饰,就是全局常量。
抽象类
- abstract来修饰的类就是抽象类,修饰的方法就是抽象方法。
- 抽象方法只有方法的声明,没有方法的实现,以分号结束。
- 含有抽象方法的类必须被声明为抽象类。
- 抽象类不能被实例化,是用来被子类继承的,子类必须重写父类的抽象方法,并提供方法体。若没有全部重写抽象方法,则仍旧为抽象类。
- abstract不能修饰属性,私有方法,构造器,静态方法以及final修饰的方法。
接口
接口(interface)是抽象方法和常量值的定义的集合。从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。实现接口语句:class subClass implements interfaceA{ }
- 接口用interface来定义。
- 接口中所有的成员变量都默认是由public static final 来修饰的。
- 接口中所有的成员方法都默认是由public abstract 来修饰的。
- 接口没有构造器。
- 接口可以继承接口。
- 类可以实现多个接口,用“implements”加接口名称,名称之间用逗号分隔。
- 如果类没有实现接口的所有方法,那么这个类就要被定义成抽象类。
- 如果一个类要继承父类,又要实现接口,那么先继承,再实现。
- 抽象类是对一类事物的高度抽象,其中既有属性又有方法。接口是对方法的抽象,是对一系列动作的抽象。
内部类
在Java中允许在一个类中定义另外一个类,则前者称为外部类,后者称为内部类。
- 内部类作为类的成员,可以声明为final。
- 不同于外部类,可以声明为static。
- 也可以声明为abstract的,因此可以被其他的内部类继承。
- 内部类主要是用来解决Java不能多重继承的问题,