final关键字
final:关键字表示“不可改变的量”,用于修饰变量,方法,类。
final修饰变量时:表示该变量是不可改变的量,即常量。
final修饰方法时:表示该方法不可以被子类重写。
final修饰类时:表示该类不可被子类继承。
例子:
public final void main method(){
final int a;
}
public final class base{
}
内部类
####内部类:在一个类里面在定义一个类叫做内部类。内部类可以访问外部类的私有成员。
1)、静态内部类
2)、局部内部类
3)、匿名内部类
4)、成员内部类
局部内部类:在某个方法或者代码内声明的类。
静态内部类:内可以含静态成员,不能访问。
匿名内部类:只能用一次,多用于接口,不可以使用静态的成员、方法和类,但是可以调用非静态的成员、方法和类的定义。只能创建匿名内部类的一个实例,一个匿名内部类一定在new的后面创建其实实现的接口和方法。
抽象类
抽象方法:只有方法声明,没有方法实现的方法称为“抽象方法”。
抽象类和抽象方法用abstract来修饰。
语法:[访问符] abstract class 类名{ }//抽象类
[访问符] abstract < 返回类型> 方法名([参数列表])//抽象方法
注:1)抽象方法只有声明没有方法体。
2)abstract放在class前,abstract放在方法的返回类型前。
3)抽象类不能创建实例。
4)抽象类的子类必须去重写抽象方法。
5)抽象方法不能是静态的或者是final的。
接口
接口:定义了一些要遵守的规范,只规定这些类必须提供的方法,而不提供任何实现条件中的方法是抽象方法。
接口:可以实现多重继承,接口可以有多个父接口,一个类也可以实现多个接口。
语法:[访问符] interface 接口名 [extends,父接口1,父接口2]{
//接口体
}
注:接口名的第一个字母大写。父接口之间用逗号进行间隔。
实现接口
语法 [访问符] class 类名 implement 接口1[,接口2…]{
//类体
}
注:一个类可以实现多个接口,各个接口之间用逗号进行间隔。