1. 程式人生 > >Java 中的抽象類

Java 中的抽象類

使用了關鍵詞abstract宣告的類叫作“抽象類”。如果一個類裡包含了一個或多個抽象方法,類就必須指定成abstract(抽象)。

“抽象方法”,屬於一種不完整的方法,只含有一個宣告,沒有方法主體。

使用抽象類要注意以下幾個要點:

包含一個或者多個抽象方法的類必須被宣告為抽象類.
將類宣告為抽象類,不一定含有抽象方法.
通常認為,在抽象類中不應該包括具體方法,建議儘量將通用的域和方法放在超類中.
抽象類不可以被例項化.即不能建立這個類的物件
例項程式碼:

package com.imooc.chouxiang;

 //定義一個抽象父類Telephone

public  abstract class 

Telephone {

  //定義兩個抽象方法,抽象方法沒有方法體,以分號結束。

  public abstract void call();

  public abstract void message();

}

定義兩個子類CellPhone,SmartPhone繼承Telephone,子類會自動生成call,message方法,在子類中實現具體的方法。

package com.imooc.chouxiang;

 public class CellPhone extends Telephone {

     @Override

    public void call() {

        System.out

.println("傳統手機用鍵盤撥打電話!!");

     }

     @Override

    public void message() {

               System.out.println("傳統手機用鍵盤發簡訊!!");

    }

 }

package com.imooc.chouxiang;

 public class SmartPhone extends Telephone {

     @Override

    public void call() {

               System.out.println("智慧手機用語音撥打電話!!

");

     }

     @Override

    public void message() {

               System.out.println("智慧手機用語音傳送簡訊!!");

    }

 }


建立一個測試類測試抽象類及子類,程式碼及執行結果如下:

package com.imooc.chouxiang;

 public classTestPhone {

     public static void main(String[] args) {

        //CellPhone的一個例項

        Telephonetl1=new CellPhone();

        //呼叫CellPhone的兩個方法

        tl1.call();

        tl1.message();

        //SmartPhone的一個例項

        Telephonetl2=new SmartPhone();

        //呼叫SmartPhone的兩個方法

        tl2.call();

        tl2.message();

    }

 }

 執行結果如下:

傳統手機用鍵盤撥打電話!!

傳統手機用鍵盤發簡訊!!

智慧手機用語音撥打電話!!

智慧手機用語音傳送簡訊!!





相關推薦

Java抽象和接口的區別

pre data 區分 信息 展示 關於 面向 得出 lose 在Java語言中, abstract class 和interface 是支持抽象類定義的兩種機制。正是由於這兩種機制的存在,才賦予了Java強大的 面向對象能力。abstract class和interfac

Java抽象的理解

pan 創建 所有 bsp 抽象類 member 初始 dem print ---------------------------------------- 今天來給大家分享一下我對抽 象類及抽象方法的理解: -----------------------------

java抽象抽象方法到底什麽關系?請舉例說明!

init 舉例 web nds ike anti 聲明 use dont 抽象類和抽象方法什麽關系?抽象類中可能有抽象方法,也可能沒有抽象方法。(視頻下載) (全部書籍)那位說,就跟沒說一樣,那抽象類和抽象方法都叫抽象,他們必定有關系,那關系是什麽呢?如果一個類中有抽象方法

Java抽象和介面的對比分析

abstract class在Java語言中表示的是一種繼承關係,一個類只能使用一次繼承關係。但是,一個類卻可以實現多個interface。 在abstract class中可以有自己的資料成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態的

舉例說明java抽象和介面的區別

先定義一個介面: 介面中定義了兩個方法,現在定義一個普通類實現這個介面: 這時候發現報錯了,以前只知道實現介面必須實現其中的方法,卻不知道為什麼要實現。最近才瞭解到: 如果一個類繼承了某個抽象類或者實現了某個介面都需要對其中的抽象方法進行實現,否則該類需要被宣告為

(轉)詳細解析Java抽象和介面的區別

原文地址:https://zhuanlan.zhihu.com/p/50989401 在Java語言中, abstract class 和interface 是支援抽象類定義的兩種機制。正是由於這兩種機制的存在,才賦予了Java強大的 面向物件能力。abstract class和interface之間在對於

Java抽象抽象方法的區別

Java中抽象類和抽象方法的區別 抽象方法:在類中沒有方法體的方法,就是抽象方法。 抽象類:含有抽象方法的類就叫抽象類。 抽象類中的抽象方法必須被實現! 如果一個子類沒有實現父類中的抽象方法,則子類也成為了一個抽象類! 抽象類中的普通方法,可以不必實現。 1&

Java抽象

抽象類用abstract修飾,必須有抽象方法,不能被例項化,抽象類可以有構造方法。抽象方法也用abstract修飾。抽象方法有兩個特點,一是被abstract修飾,二是沒有方法體。 abstract

Java抽象和介面的具體區別 都分別什麼時候用

學習Java已經一個月的時間了,期間經歷了從入門到放棄再到重拾信心重新奮鬥。今天的學習總結是關於Java中抽象類和介面的區別總結。 一、Java抽象類 1.抽象類必須用 abstract修飾 2.如果一個類有abstract方法,這個類一定是抽象類 3.抽象類不一定有抽象方法 4.抽象類

java 抽象和介面的區別

不同點: 1.從語法上來講,抽象類 abstract class,介面中用interface 2.定義中:①變數:抽象類中可以定義變數,介面只有常量 public static final                   ②常量:抽象類中任何方法都可以除了(defa

詳細解析Java抽象和介面的區別

  在abstract class方式中,Demo可以有自己的資料成員,也可以有非 abstract的成員方法,而在interface方式的實現中,Demo只能夠有靜態的不能被修改的資料成員(也就是必須是static final 的,不過在interface中一般不定義資料成員),所有的成員方法都是abstr

Java抽象與介面區別

抽象類:抽象類是無法例項化的特殊類。所以問題是為什麼我們需要一個不能被例項化的類,抽象類只能是子類(繼承自)。換句話說,它只允許其他類繼承它,但不能例項化。優點是它為所有子類執行特定的層次結構。簡

Java抽象的構造器的作用

因為抽象類不可例項化,那麼只能在子類例項化時呼叫該抽象類的構造器才有用 看例項程式碼: abstract class Animal { Animal(){ System.out.println("抽象類Animal無參構造器"); //此處執行前會預設執行super

簡述Java抽象和介面,及其兩者區別

在說區別之前,先簡要說一下什麼是抽象類和介面     1.抽象類      用abstract修飾的類叫做抽象類。     在講抽象類之前有必要強調一下abstract修飾符:      1.abstract修飾的類為抽象類,此類不能有物件,(無法對此

Java抽象、介面、包的文件練習

。一、選擇題 1.        實現介面的類修飾不可以是(   ) A.  Public    B、abstract     C、final     D、void 2.        下面程式定義了一個類,關於該類說法正確的是( ) abstract classabst

Java抽象和介面的區別?

抽象類: 抽象類必須在類前加上abstract表示這是一個抽象類,抽象類的抽象方法不需要實現,他只是一種宣告,所以也就無法建立抽象類的物件。一個類繼承抽象類必須實現抽象類中的抽象方法,如果不實現這個抽象方法,那麼這個類就必須是抽象的。 介面: 介面是Java中的interface,介面中

java抽象的學習

一、抽象類的產生 抽象類的產生和繼承有關,和父類有關,父類就是子類的共性抽取出來的。所謂的抽象,就是不是一種實物,比如人、貓、狗抽象出來是動物,人是實物、物件,貓是實物、物件。但是動物就不是實物和物件。動物就是抽象出來的。因此抽象類就是從實物中抽取出來的共性組成的類。 二、abstrac

說一下Java抽象和介面存在的意義與價值

首先簡單的介紹一下抽象類: 定義是很簡單的,我們這裡不寫官方的語言,我自己看著都煩,我們就用白話介紹,抽象類本質是一個類,沒問題,那麼類裡面一般都是有方法的,方法包括方法名和方法體,這是常識對不對,那麼什麼是抽象類呢?如果一個類裡面有一種方法只有方法名卻沒有方法體,這樣的類

面試常見題---------java抽象跟介面的區別

    含有abstract修飾符的class 即為抽象類,abstract類不能建立例項物件,含有abstract的方法的類必須定義為abstract class ,abstract class 裡

Java抽象和介面有構造方法嗎?

1.時間:2017-07-05 10:25:44 YuanMxy 2.問題描述:Java中抽象類和介面中有構造方法嗎? 3.問題解答: (1)Java中抽象類和介面中有構造方法嗎? ①在介面中 不可以有構造方法 在接口裡寫入構造方法時,