什麼是抽象方法?
什麼是抽象類和抽象方法?
抽象類就是不能使用new方法進行實例化的類,即沒有具體實例對象的類。抽象類有點類似“模板”的作用,目的是根據其格式來創建和修改新的類。對象不能由抽象類直接創建,只可以通過抽象類派生出新的子類,再由其子類來創建對象。當一個類被聲明為抽象類時,要在這個類前面加上修飾符abstract。 在抽象類中的成員方法可以包括一般方法和抽象方法。抽象方法就是以abstract修飾的方法,這種方法只聲明返回的數據類型、方法名稱和所需的參數,沒有方法體,也就是說抽象方法只需要聲明而不需要實現。當一個方法為抽象方法時,意味著這個方法必須被子類的方法所重寫,否則其子類的該方法仍然是abstract的,而這個子類也必須是抽象的,即聲明為abstract。 抽象類中不一定包含抽象方法,但是包含抽象方法的類一定要被聲明為抽象類。抽象類本身不具備實際的功能,只能用於派生其子類。抽象類中可以包含構造方法,但是構造方法不能被聲明為抽象。 抽象類不能用final來修飾,即一個類不能既是最終類又是抽象類。 abstract不能與private、static、final、native並列修飾同一個方法。 程序舉例:abstract class Animal //定義抽象類 abstract void eat(); //定義抽象方法}class Horse extends Animal //定義繼承Animal的子類 void eat() //重寫父類的抽象方法 }class Dog extends Animal void eat() }class test}運行結果: 馬吃草料! 狗吃骨頭!
什麼叫JAVA的抽象方法?
抽象方法定義在抽象類或接口中,它只有方法的聲明沒有實現例如;
public abstract class AAA{
public abstract voi弧 test();
}
上面的test方法就是抽象方法,他後面直接寫一個;號不能帶{}
抽象類和抽象方法起什麼作用
實現多態啊..
最簡單的一個作用,實現模板.
所有繼承抽象類的子類,必須強制實現抽象類的抽象方法.如果沒有抽象方法,則子類可有,可沒有該方法.定義一個抽象方法後,所有子類就必須實現了.
另外,抽象類通常用於指向子類的實例場
比如:
抽象類 實例 = new 子類();
實例.抽象方法();
如果你不定義抽象方法,如何使用子類的方法呢??
Java中什麼叫做抽象方法只需聲明,而不需實現?
實現是針對其子類:例如
public abstract class Father{
//只申明,不實現
public abstract void show();
}
public class Child extends Father{
//實現
public void show{
System.out.println("show method!");
}
}
實現了方法,不覺得麼?
你看父類的方法
public abstract void show();
只是做了聲明,並沒有方法體。
在其子類中:
public void show{
System.out.println("show method!");
}
實現了方法內部功能,我只是輸出一句話,當然你可以做其他功能。
抽象方法和類是拿來幹什麼
(關鍵字abstract)抽象類是為繼承而定義的,抽象類中不一定有抽象方法,但有抽象方法一定是抽象類。
抽象類中可以定義構造函數,但是不能使用關鍵字new 創建其對象。
如果某個類繼承於抽象類,應將父類的抽象方法都覆蓋,否則子類也是一個抽象類。覆蓋實現則可以創建子類的對象。
靜態方法和final方法都不能聲明為抽象。
數據抽象方法的定義
數據類型是和數據結構密切相關的一個概念。它最早出現在高級程序設計語言中,用以刻劃程序中操作對象的特性。在用高級語言編寫的程序中,每個變量、常量或表達式都有一個它所屬的確定的數據類型。類型顯式地或隱含地規定了在程序執行期間變量或表達式所有可能的取值範圍,以及在這些值上允許進行的操作。因此,數據類型(DataType)是一個值的集合和定義在這個值集上的一組操作的總稱。 在高級程序設計語言中,數據類型可分為兩類:一類是原子類型,另一類則是結構類型。原子類型的值是不可分解的。如C語言中整型、字符型、浮點型、雙精度型等基本類型,分別用保留字int、char、float、double標識。而結構類型的值是由若干成分按某種結構組成的,因此是可分解的,並且它的成分可以是非結構的,也可以是結構的。例如,數組的值由若干分量組成,每個分量可以是整數,也可以是數組等。在某種意義上,數據結構可以看成是“一組具有相同結構的值”,而數據類型則可被看成是由一種數據結構和定義在其上的一組操作所組成的。 抽象數據類型 抽象數據類型(AbstructDataType,簡稱ADT)是指一個數學模型以及定義在該模型上的一組操作。抽象數據類型的定義取決於它的一組邏輯特性,而與其在計算機內部如何表示和實現無關。即不論其內部結構如何變化,只要它的數學特性不變,都不影響其外部的使用。 抽象數據類型和數據類型實質上是一個概念。例如,各種計算機都擁有的整數類型就是一個抽象數據類型,儘管它們在不同處理器上的實現方法可以不同,但由於其定義的數學特性相同,在用戶看來都是相同的。因此,“抽象”的意義在於數據類型的數學抽象特性。 但在另一方面,抽象數據類型的範疇更廣,它不再侷限於前述各處理器中已定義並實現的數據類型,還包括用戶在設計軟件系統時自己定義的數據類型。為了提高軟件的重用性,在近代程序設計方法學中,要求在構成軟件系統的每個相對獨立的模塊上,定義一組數據和施於這些數據上的一組操作,並在模塊的內部給出這些數據的表示及其操作的細節,而在模塊的外部使用的只是抽象的數據及抽象的操作。這也就是面向對象的程序設計方法。 抽象數據類型的定義可以由一種數據結構和定義在其上的一組操作組成,而數據結構又包括數據元素及元素間的關係,因此抽象數據類型一般可以由元素、關係及操作三種要素來定義。 抽象數據類型的特徵是使用與實現相分離,實行封裝和信息隱蔽。就是說,在抽象數據類型設計時,把類型的定義與其實現分離開來。
Java父類中抽象方法有什麼用?
樓主好好把繼承和多態的概念理解下吧!
繼承,是對有著共同特性的多類事物,進行再抽象成一個類。這個類就是多類事物的父類。父類的意義在於可以抽取多類事物的共性。
多態,把子類對象主觀的看作是其父類型的對象,那麼父類型就可以是很多種類型。
例如父類Person(人) 子類 Students(學生) 子類Teacher(教師)
琺類中有抽象方法 void work();子類分別實現
Person p1 = new Student();
Person p2 = new Teacher();
p1.work();
p2.work();
樓主自己試下什麼結果!
如果你父類中不定義抽象方法或方法的話,你看看 還能夠p1.work();這樣調用嗎?答案是否定的。
抽象類中的方法都必須是什麼
1.抽象類與抽象方法的關係是:抽象方法必須在抽象類中,如果抽象方法不在抽象類中,則會編譯報錯,這個是規定的。
2.抽象類中的方法不一定要必須是抽象方法,可以有抽象方法,和非抽象方法。其中非抽象方法,往往都是抽象類的所有子類所具有的,而抽象方法則由具體的不同子類實現不同的方法
所以綜上所述,這句話是錯誤的。
另外題外話。我是這麼理解抽象類的。
水果就是一個抽象類。如果我叫你拿出一個水果的實例,對象出來,你肯定拿不出一個叫水果的實例,對象。你只是能拿出比如蘋果,香蕉等水果的子類實例。
水果中的非抽象方法類似於蘋果,香蕉都有皮,都有水(所以這些不用我們去實現)
抽象方法為:水果的形狀(所以我們就要在蘋果,香蕉中實現不同的形狀方法)
純手打~~忘採納
java抽象類中沒有抽象方法有什麼用
就是單純的不想讓你創建這個類的實例,所以就把這個類給抽象起來。
Java怎麼構建抽象類,抽象類的概念是什麼?
普通類就是一個完善的功能類,可以直接產生對象並且可以使用,裡面的方法都是帶有方法體的,
而抽象類之中最大的特點是包含了抽象方法,而抽象方法是隻聲明而未實現(沒有方法體)的方法,
而抽象方法定義的時候要使用abstract關鍵字完成,而抽象方法一定要在抽象類之中。
抽象類要使用abstract關鍵字聲明。
範例:定義一個抽象類
abstract class A {
private String info = "Hello World" ;
public void print() {
System.out.println(info) ;
}
public abstract void get() ; //只聲明沒有方法體
}