Final关键字 & 接口

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容