一、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..{}