java中的抽象類跟接口

對於這個話題好多人都比較模糊,也包括了做了幾年的老程序員。對於我來說,到現在爲止纔算有一點清楚 :o 。
1抽象類:

如果一個類不能充分描述這個一個具體對象,那麼這個類就被定義爲抽象類
1.1 抽象類不能夠被實例化。
1.2 抽象類中允許有抽象方法跟普通方法同時存在
1.3 抽象類的定義必須爲abstract
1.4 如果抽象類的子類沒有實現抽象父類的所有抽象方法,那麼子類也應該被定義爲抽象類
1.5 僅當abstract類的子類實現其超類的所有abstract方法時,才能被實例化,這種類是具體類.
public abstract class test {
public String aa;//抽象類中可以有自己的數據成員
abstract void method1();
abstract void method2();
//抽象類中可以有默認的方法行爲
void add(){
System.out.println("test");
}
}

public class tt extends test {
@Override
void method1() {
// TODO Auto-generated method stub

}

@Override
void method2() {
// TODO Auto-generated method stub

}

}

public class testrun {

/**
* @param args
*/
public static void main(String[] args) {
tt obj=new tt();
obj.add();//調用具有默認行爲的方法
obj.method1();//調用抽象方法
obj.aa="2";//訪問成員
System.out.println("aa="+obj.aa);

}

}

二 接口

接口一種特殊的抽象類

1. 接口中的方法都是abstract的

2. 接口中可以擁有static final的數據成員,但一般都不這樣做

3. 接口中的方法不能有默認行爲
public interface ITest {
public static final String aa="88";//接口中可以有static final的數據成員,一般不這麼做
//方法都是抽象的
void method1();
void method2();
//不能有默認方法行爲
}
接口更多的是在系統框架設計方法發揮作用,主要定義模塊之間的通信,而抽象類在代碼實現方面發揮作用,可以實現代碼的重用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章