1、关键字final(最终的)
(1) 可以修饰变量,变量只能被赋值一次;
(2) 可以修饰方法,方法不能被重写;
(3) 可以修饰类,这个类不能被继承;
Final关键字修饰属性(成员变量)时,属性必须初始化(赋值)。
声明属性时直接初始化 public static final
通过构造方法对属性进行初始化。
2、常量
Static 和final 一起修饰的属性,才可以称之为常量。
常量在定义时直接赋值,且属性名称全部大写,多个单词中间用下划线隔开。
//常量的调用格式:类名 . 属性名Public static final int SARRAY = 2000;Public People(byte age){This.age = age ;}//属性调用People p = new People((byte) 21);P.name = “姓名”;
3、抽象类
关键词abstract:抽象
抽象方法:只有方法的声明,没有方法体。
Public abstract void running();Public abstract void sleep();
抽象类中可以包含: 成员变量、静态变量、成员方法、静态方法、也可以有抽象方法
抽象类不能被实例化(不能创建对象),不能多继承。
只要一个类中有抽象方法,那么这个类一定(必须)是抽象类
只要类上有abstract声明,这个类一定是抽象类;抽象类中不一定有抽象方法。
public abstract class Animal {public String name;public static byte age ;public String color;public void eat() {System.out.println("eat......");}
构造方法、静态方法、私有权限的方法、添加final关键词的方法都不能是抽象方法。
原因:构造方法、静态方法、私有方法、final方法都不能被继承,而抽象方法必须被重写才能使用,两者互相矛盾。
普通子类继承抽象类后,必须重写(实现)父类的抽象方法
public class Dog extends Animal{@Overridepublic void running() {System.out.println("在地上跑");}@Overridepublic void sleep() {System.out.println("睡觉");}}
4、接口
Interface 定义接口的关键词
接口文件中,所有的属性都是静态常量,所有的方法都是抽象方法。
接口中只包含静态常量和抽象方法。
定义接口中的常量时, 前面会自动添加 public static final;
定义接口中的抽象方法时,方法前会自动添加 public abstract void;
接口不可以直接被实例化,且不包含构造方法。
一个类可以实现多个接口,接口不能继承抽象类,抽象类可以实现接口。
Public interface Demo{//定义静态常量Public styatic final byte AGE = 20;String name = “姓名”;//定义抽象方法Public abstract void sleep();//jdk1.8 版本后,抽象类中可以使用静态方法Public static void eat(){System.out.println(“吃饭”)}}
