Final 关键字
final 的变量的值不能够被改变
- final 的成员变量
- final 的局部变量(形参)
final 的方法不能够被重写
final 的类不能够被继承
public class TestFinal {
public static void main(String[] args) {
T t = new T() ;
//t.i = 9; // 错误: 无法为最终变量i分配值
}
}
class T{
final int i = 8;
public void m(final int j) {
// j =9; // 错误: 不能分配最终参数j
}
}
接口
- 多个无关的类可以实现同一个接口
- 一个类可以实现多个无关的接口
- 与继承关系类似,接口与实现类之间存在多态性
- 定义Java类的语法格式:
<modifer> class <name> [extends <superclass>]
[implements<interface>[,<interface>]×] {
<declaractions>*} (x代表星号)
接口
- 接口(interface)是抽象方法和常量值的定义的集合
- 从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
- 接口定义举例:
public interface Runner {
public static final int id = 1; // 等价于 int id = 1;
public void start();
public void run();
public void stop();
}
接口特性
- 接口可以多重实现;(一个类可以实现多个接口)
- 接口中声明的属性默认为public static final的;也只能是 public static final 的;
- 接口中只能定义抽象方法,而且这些方法默认为public 的、也只能是public 的
- 接口可以继承其它的接口,并添加新的属性和抽象方法
interface Singer{
public void sing();
public void sleep();
}
class Student implements Singer {
private String name;
Student(String name) {
this.name = name;
}
public void study() {
System.out.println("studying") ;
}
public String getName() {return name;}
public void sing() {
System.out.prrintln("student is singing");
}
public void sleep() {
System.out.println("student is sleeping");
}
}
注意: 类与类之间可以相互继承,接口与接口之间可以相互继承;但是类与接口之间只能是类实现接口
image.png