java的接口和抽象類有何不同 java中抽象方法可以有方法體嗎?
java中抽象方法可以有方法體嗎?抽象的意思沒有具體的實(shí)體,是總結(jié)出來的東東。就像讓你吃飯一樣,你怎么知道會吃什么?或者你管我吃啥。你只是讓我去吃飯。抽象方法的意思就是,定義了方法名,但不寫具體干什么
java中抽象方法可以有方法體嗎?
抽象的意思沒有具體的實(shí)體,是總結(jié)出來的東東。就像讓你吃飯一樣,你怎么知道會吃什么?或者你管我吃啥。你只是讓我去吃飯。抽象方法的意思就是,定義了方法名,但不寫具體干什么。也就是說肯定沒有方法體。但是抽象類中是可以寫非抽象方法的?。。?
java中抽象類中一定要有抽象方法么?
重寫是發(fā)生在繼承當(dāng)中,子類將從父類中繼承的某些方法重新構(gòu)造的一個(gè)過程,這個(gè)方法的前提是必須與父類的這個(gè)方法的返回值類型,參數(shù)類型,參數(shù)個(gè)數(shù),參數(shù)順序完全一樣,比如說父類中有個(gè)方法是eat而這個(gè)方法的輸出是"我想吃水果",子類想引用父類中的eat方法,并且想讓它變得很具體,那么輸出就可以改為“我想吃蘋果”等等,總結(jié)一下就是,子類想引用父類方法不想做出改變那么就直接super調(diào)用,但是想讓改方法在子類中變得更加具體,就必須重寫。
抽象abstract:字面意思就可以看出他是不具體的一個(gè)東西,所以可以理解為它是一種規(guī)則,如果你知道interface那么就能更好的理解了,因?yàn)榻涌诰褪浅橄蟮綐O致的特殊抽象類。abstract不僅可以修飾類也可以修飾方法,修飾類的時(shí)候它就是抽象類,類中可以有抽象方法也可以不包含抽象方法,主要特點(diǎn)是它是不被允許自己調(diào)用自己的構(gòu)造方法的,只能被子類繼承,子類去調(diào)用它里面的方法,而且如果抽象類中有抽象方法,那么子類必須具體實(shí)現(xiàn)這個(gè)方法才可以繼承,或者子類也是一個(gè)抽象類才可以繼承。當(dāng)abstract修飾方法的時(shí)候就是抽象方法了,一個(gè)類中有抽象方法,那么這個(gè)類必定是抽象類,記住一點(diǎn)抽象類中不一定有抽象方法,但是有抽象方法的類一定是抽象類,而且抽象方法是沒有方法體的,就是沒有{}這個(gè)括號