Final:
final的变量的值不能够被改变
final的成员变量,final的局部变量(形参)
final的方法不能被重写
final的类不能被继承
接口:
1.接口(interface)是抽象方法和常量值的定义的集合
2.从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,
而没有变量和方法的实现
3.接口定义举例:
public interface Runner{ public static final int id = 1; public void start(); public void run(); public void stop(); }
接口特性:
1.多个无关的类可以实现同一个接口
2.一个类可以实现多个无关的接口
3.与继承关系类似,接口与实现类之间存在多态性。
4.接口中声明属性默认为public static final的,也只能是public static final的
5.接口可以继承其它的接口,并添加新的属性和抽象方法
6.举例
interface Singer { public void sing(); public void sleep(); } interface Painter { public void paint(); public void eat(); } 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.println("student is singing"); } public void sleep() { System.out.println("student is sleeping"); } } class Teacher implements Singer,Painter { private String name; public String gerString() { return name; } Teacher(String name) { this.name = name; } public void teach() { System.out.println("teaching"); } public void sing() { System.out.println("teacher is singing"); } public void sleep() { System.out.println("teacher is sleeping"); } public void paint() { System.out.println("teacher is painting"); } public void eat() { System.out.println("teacher is eating"); } } public class testInterface { public static void main(String[] args) { Singer s1 = new Student("le"); s1.sing(); s1.sleep(); Singer s2 = new Teacher("steven"); s2.sing(); s2.sleep(); Painter p1 = (Painter)s2; p1.paint(); p1.eat(); } } /* 运行结果: student is singing student is sleeping teacher is singing teacher is sleeping teacher is painting teacher is eating */