1、抽象類和介面有什麼區別
抽象類特徵如下:
抽象類和抽象方法都必須用abstract關鍵字修飾
抽象類不能被例項化,也就是不能用new關鍵產生物件
抽象方法只需宣告而無需事先
抽象方法必須定義的抽象類中,抽象類的子類必須實現父類中的抽象方法,否則這個子類還是個抽象類
介面的特徵
介面內有構造方法
介面中宣告變數均為final,static,和public得
介面中定義的方法均為抽象的和公共的
介面裡的資料成員必須初始化,且資料成員均為常量
inte***ce truck
inte***ce bus
inte***ce car extends truck, bus
class cart implements car
public string getproduction()
public cart(string name, string production)
public void sound()
}建構函式
注意:1建構函式具有和類名相同的名稱。
2他沒有返回值,也沒有返回型別
3 每個類可以有多個建構函式,即建構函式可以過載
4建構函式在建立物件時自動執行,一般不能顯示的呼叫
5構造方法不能重寫,也就是子類不能繼承父類的構造方法
6子類繼承父類時,會先自動呼叫父類的無參構造方法,為父類成員賦初值
關於建構函式下面哪些是正確的?
1super()或this()必須放在建構函式的第一句
2如果父類的建構函式沒有引數,那麼子類的建構函式一定沒有引數
3 建構函式不能被繼承
4建構函式不能被重寫
正確的為13
找出下面**的錯誤位置
/*在同乙個類的不同構造方法中呼叫該類的其他構造方法需要使用this(...)
* 的形式,而且必須是在構造方法的第一行呼叫,this(name,age);此句錯誤在於把成員
* 變數作為引數被建構函式引用,構造方法是乙個類物件例項化的起點,例項化的目的就是為
* 了給類成員初始化,所以引用的引數值應該是常量而不是變數,因此構造方法中
* 不能將成員作為引數引用*/
class woman
public woman(string n, string a)
public woman(string n, string ar, int a)
}/*如果子類中指定了呼叫父類中的哪個建構函式,則不再呼叫預設的無參建構函式,
super必須放在第一句,是因為子類需要先初始化父類*/
public class testclass
}class fatherclass
fatherclass(int i)
}class sonclass extends fatherclass
sonclass(int i)
}輸出:
建立父類物件:
父類的建構函式
建立第乙個子類物件:
父類的建構函式2
子類的第乙個建構函式
建立第二個子類物件:
父類的建構函式
子類的第二個建構函式
Java 介面和抽象類
介面,inte ce,介面泛指供別人呼叫的方法和函式。介面的形式 public inte ce inte cename 介面的特點 1 介面中可以含有變數和方法。2 其中變數被隱式的指定為public static final 變數並且只能是這種變數。3 介面的方法隱式的指定為public abst...
java抽象類和介面
抽象類 乙個類中只要有乙個抽象方法 那麼這個類就必須是抽像的 抽象類必須要進行例項化 public abstract class animal class cat extends animal 介面 從本質上講介面是一種特殊的抽象類 介面中所有的方法都是抽象的 並且介面中的成員都是public 介面...
Java抽象類和介面
含有abstract修飾符的class即為抽象類,abstract類不能建立的例項物件。含有abstract方法的類必須定義為abstract class,abstract class類中的方法不必是抽象的。abstract class 類中定義抽象方法必須在具體 concrete 子類中實現,所以...