|
抽象類: 1)abstract 定義的類, 2)抽象類中可以有抽象方法,也可以有非抽象方法。但有抽象方法的類必須是抽象類,抽象方法不可有實(shí)現(xiàn)題(也就是大括號(hào)),非抽象類必須有實(shí)現(xiàn)體。 3)抽象類不能被實(shí)例化,但可以被繼承,繼承抽象類的子類必須是抽象的,除非實(shí)現(xiàn)了抽象類的所有抽象方法。 abstract class sport{ abstract void run(); abstract void jump(); void going() { System.out.println("我喜歡走路"); } } abstract class favourite extends sport{//如果沒(méi)有完全實(shí)現(xiàn)抽象類中的方法,則該類必須是抽象的 public void run(){} } class sportMeet extends sport{//如果完全實(shí)現(xiàn)了抽象類中的所有抽象方法,則子類可以不是抽象的 public void run(){} public void jump(){}} 接口: 如果抽象類里的所有方法都是抽象的,那么就可以用另一種形式表示,那就是接口。用interface表示 1)接口是抽象方法和常量的集合,只有方法的定義,沒(méi)有方法的實(shí)現(xiàn)。 2)接口中的方法都是抽象的,所以不用標(biāo)志abstract關(guān)鍵字。接口中定義的常量都是public static final類型的。方法都是public;類型的 3)接口可以繼承其他接口,這樣就擁有父類的所有屬性和方法 4)普通類實(shí)現(xiàn)接口,要實(shí)現(xiàn)接口中的所有抽象方法, 包括父類的方法。如果沒(méi)有完全實(shí)現(xiàn),則這個(gè)類就是抽象類,必須有abstract關(guān)鍵字 5)一個(gè)雷可以實(shí)現(xiàn)多個(gè)接口 interface Run{ int ID=1; void run(); } interface Animal extends Run{ void breathe(); } class Fish implements Animal{ public void breathe(){} public void run(){ } } abstract class person implements Animal{ public void breathe(){ } } |
|
|
來(lái)自: I_T_館 > 《java基礎(chǔ)》