1. 程式人生 > >Java自學之路-Java基礎教程-19:Java四大特性之抽象性以及abstract

Java自學之路-Java基礎教程-19:Java四大特性之抽象性以及abstract

Java有一種類定義為抽象的,使用關鍵字abstract。抽象的意思就是不具體的,需要其他類繼承,才能生成這個類的物件進行使用。

package com.helloworld;

public abstract class AbstractManager {

	public void countPerson() {

		int count = 10;

		System.out.println(count);

	}

}

在上面的例子裡,在class前加一個abstract就把這這個類定義為抽象類了。這個抽象類有一個方法,為countPerson()。在HelloWorld類的main方法中是否可以建立這個AbstractManager類的物件呢?AbstractManager abstractManager = new AbstractManager();這樣寫,但這一行會出現編譯錯誤的紅叉。

那麼如何使用這個抽象類?這就要先用一個其他的類繼承這個抽象類。下面的程式碼使用class PersonManagerImpl extends AbstractManager來繼承抽象類AbstractManager。

package com.helloworld;

public class PersonManagerImpl extends AbstractManager implements PersonManager {

	@Override
	public void findPerson() {
		System.out.println("A person is found. ");
	}

}

這樣才可以由通過PersonManagerImpl類來使用AbstractManager類中的方法。在main()方法中這樣定義一個物件, PersonManagerImpl manager = new PersonManagerImpl();
manager.countPerson();
manager.findPerson();
這就讓abstractManager成了AbstractManager型別的物件了,並且也是PersonManagerImpl型別的物件。所以物件manager可以呼叫AbstractManager的countPerson()方法,也可以呼叫PersonManagerImpl的findPerson()方法。

注意,class PersonManagerImpl extends AbstractManager implements PersonManager這樣寫是可以的,但是extends在後面implements在前面就不可以了,這是Java規定的。

另外,Java中的類可以implements 多個介面,但只能extends一個父類。實現多個介面時,implements後面的介面名用,逗號隔開。

配套進階視訊教程:

Java中级SSHæ¡æ¶é¡¹ç®å¼å设计æç¨

具有OCR和翻譯功能,可以作為便籤或筆記,類似微博的圖文應用
發表的好記可以轉化為好文,並可轉化為語音,在電腦端可以下載到該語音。

使用〖影音好記〗小程式識別圖片文字