Java牛角尖【001】:抽象類別必須有抽象方法嗎?

來源:互聯網
上載者:User

  我們都知道,有抽象方法的類是抽象類別,反過來說,抽象類別都有抽象方法嗎?

  其實這個問題非常明白,用abstract修飾的類就是抽象類別,並不是說抽象類別中必須有抽象方法,即使一個類中的方法全部實現過,也可以用abstract修飾為抽象類別,所以抽象類別不一定都有抽象方法。

  下面代碼中是一個沒有抽象方法的抽象類別:

abstract class DemoClass{<br />public void printMessage(String msg){<br />System.out.println(msg);<br />}<br />}

  看完這段代碼,我不盡又想,這個類可以被執行個體化嗎?我怎麼去調用該類中的公用方法呢?通過

DemoClass d = new DemoClass();

  這明顯是不行的,抽象類別不能被執行個體化,即使是一個沒有抽象方法的抽象類別,也同樣不能被執行個體化。當然,還可以把printMessage方法改為static類型,那麼就可以直接調用了,代碼如下:

package net.moon.insignificant.abstractclass;</p><p>public class AbstractDemo {<br />public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException{<br />DemoClass.printMessage("Hello, World");<br />}<br />}</p><p>abstract class DemoClass{<br />public DemoClass(){}</p><p>public static void printMessage(String msg){<br />System.out.println(msg);<br />}<br />}

  另外一個牛角尖問題是:static可否修飾類,將在下一篇中分析。

 

  下一篇:

Java牛角尖【002】:類可以被static修飾嗎?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.