一、final关键字
Final常用来声明常量,常量必须大写,常量的内容是不能够修改的。
例子:private final String INFO = “刘欢”; //声明常量
Public final void print(){ //使用final声明的方法不能够被覆写
INFO=”HELLO”;
}
全局常量:public static final String INFO=”刘欢”;
二、抽象类:包含一个抽象方法的类就称为抽象类。(抽象方法:只声明而未实现的方法称为抽象方法,抽象方法必须使用abstract关键字声明)
abstract class A
{
public static final String FLAG="CHINA"; //全局常量
private String name="刘欢"; //定义一个普通的属性
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public abstract void print(); //定义抽象方法,不必实现
}
class B extends A //继承抽象类,因为B是普通类,所以必须覆写A中的抽象方法
{
public void print(){
System.out.println("FLAG="+FLAG);
System.out.println("姓名="+super.getName());
}
}
public class AbstractDemo
{
public static void main(String[] args){
B b=new B();
b.print();
}
}
注意:抽象类使用的时候一定要有子类,子类仍然使用extends继承。
抽象类中绝对不能使用final关键字声明的(因为final声明没有子类),抽象类中
允许有构造方法,而且完全符合子类对象的实例化过程。
三、接口:接口是java中最重要的概念,接口可以理解为一种特殊的类,里面全都是
由全局变量和公共的抽象方法所组成。
格式: interface 接口名称{
全局常量;
抽象方法;
}
例子:
Interface test{
Public String personInfo(String name,String sex,int age){
return “你是一个人”;
}
Public void eat(String name,String sex,int age){
return “人需要吃饭”;
}
。。。
}
一个子类可以同时继承抽象类和实现接口
格式: class 子类 extends 抽象类 implements 接口A,接口B…{}
例子:
abstract class A
{
public static final String FLAG="CHINA"; //全局常量
private String name="刘欢"; //定义一个普通的属性
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public abstract void print(); //定义抽象方法,不必实现
}
interface Person
{
public String say();
}
class B extends A implements Person //继承抽象类,因为B是普通类,所以必须覆写A中的抽象方法,接口
{
public void print(){
System.out.println("FLAG="+FLAG);
System.out.println("姓名="+super.getName());
}
public String say(){
return "人说话!";
}
}
public class InterfaceDemo
{
public static void main(String[] args){
B b=new B();
b.print();
System.out.println(b.say());
}
}
注意:一个接口不能继承一个抽象类,但是可以用extends继承多个接口!!!!!!
格式: interface 子接口 extends 父接口1,父接口2..{}