Final关键的使用
完结器,最终的意思;
final能声明类、方法、属性,
使用final声明的类不能被继承;
使用final声明的方法不能被重写;
使用final声明的变量变成常量,常量是不可以被修改的;变量名都改为大写
final class People {//不能被继承
final public String NAME= "小三";//变成常量,大写
public String country = "China";
public void tell(){
System.out.println("People!");
}
}
抽象类
概念:包含一个抽象方法的类就是抽象类;
抽象方法:声明而未实现的方法,(相当于占空,代表我这里有个方法,如果后面要实例化必须要创建该类),抽象方法必须使用abstract关键字声明
抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法
//抽象类,类名和方法都添加abstract关键字
abstract class People {
final public String name = "小三";
public String country = "China";
abstract public void tell();
abstract public void printError();
}
//抽象类被子类继承,子类(如果不是抽象类)必须重写抽象类中的所有抽象方法
class Student extends People{
public void tell(){
System.out.println("Hello");
}
public void printError() {
System.err.println("ERROR");
}
}
接口
接口:一个特殊的类,里面全部是由全局常量和公共的抽象方法组成;
接口的实现也必须通过子类,使用关键字implements,而接口是可以多实现的。
一个子类可以同时继承抽象类和实现接口
一个接口可以通过extends关键字同时继承多个接口,实现接口的多继承;
一个接口不能继承一个抽象类,(抽象类不能用接口拓展)
//创建接口
interface Inter1{
public static final int AGE = 100;
public abstract void tell();
}
//创建接口2
interface Inter2{
public abstract void say();
}
//接口多实现
interface Inter3 extends Inter1, Inter2{
}
//定义抽象类
abstract class Abs1{
public abstract void print();
}
//通过子类实现接口,使用关键字implements,接口可以多实现,可以同时继承抽象类和实现接口
class A extends Abs1 implements Inter1,Inter2{
public void tell(){
}
public void say() {
}
public void print() {
}
}