Java 抽象類別與final用法,java抽象final用法

來源:互聯網
上載者:User

Java 抽象類別與final用法,java抽象final用法

 抽象類別:

基於繼承

抽象類別和抽象方法的定義
父類的意義:
 把子類共有的屬性,抽取出來,達到代碼的重用

抽象類別不可被執行個體化
使用抽象類別,限制執行個體化(只有衍生類別能執行個體化,父類不能執行個體化)
 關鍵字:abstract
 每個子類的實現不同

abstract也可用於方法---抽象方法
 抽象方法沒有方法體
 抽象方法必須在抽象類別裡
 抽象方法必須在子類中被實現,除非子類是抽象類別(可以不實現)
(抽象類別沒有方法體)


抽象方法的使用:
 1)父類沒有必要執行個體化,採用將父類定義成抽象類別型
 2)抽象類別中的方法未必都是抽象方法
    抽象方法必須在抽象類別中
 3)父類中定義方法,必須由子類實現,每個子類實現的內容不同,採用父類定義抽象方法
 4)抽象類別不可以被執行個體化
 5)抽象方法必須由子類全部實現
 6)抽象方法必須在抽象類別中
 
子類重寫抽象方法:
 必須與父類抽象方法
        名字相同
 傳回值相同
 參數相同
 存取權限相同

 

栗子:

package cn.jbit.epet.inherit2;/** *  * @author: 房上的貓 *  * @time: 下午3:51:59 *  * 部落格地址: https://www.cnblogs.com/lsy131479/ * */public class Pet {    private String name = "無名氏";// 暱稱    private int health = 100;// 健康值    private int love = 0;// 親密度    /**     * 無參構造方法。     */    public Pet() {        this.health = 95;        System.out.println("執行寵物的無參構造方法。");    }    /**     * 有參構造方法。     * @param name  暱稱     */    public Pet(String name) {        this.name = name;    }    public String getName() {        return name;    }    public int getHealth() {        return health;    }    public int getLove() {        return love;    }    /**     * 輸出寵物資訊。     */    public void print() {        System.out.println("寵物的自白:\n我的名字叫" +                 this.name + ",我的健康值是" + this.health                 + ",我和主人的親密程度是" + this.love + "。");    }}
父類
package cn.jbit.epet.inherit2;/** *  * @author: 房上的貓 *  * @time: 下午3:51:59 *  * 部落格地址: https://www.cnblogs.com/lsy131479/ * */  /*  *狗狗類,寵物的子類。  */public class Dog extends Pet {    private String strain;// 品種    /**     * 有參構造方法。     * @param name   暱稱     * @param strain   品種     */    public Dog(String name, String strain) {        super(name); //此處不能使用this.name=name;        this.strain = strain;    }        public void setStrain(String strain) {        this.strain = strain;    }    public String getStrain() {        return strain;    }        public void print(){        super.print();        System.out.println("我是一隻"+this.getStrain()+"犬。");    }}
Dog 類

 

package cn.jbit.epet.inherit2;/** *  * @author: 房上的貓 *  * @time: 下午3:51:59 *  * 部落格地址: https://www.cnblogs.com/lsy131479/ * */public class Penguin extends Pet {    private String sex;// 性別    /**     * 有參構造方法。     * @param name 暱稱     * @param sex 性別     */    public Penguin(String name, String sex) {        super(name);        this.sex = sex;    }    public String getSex() {        return sex;    }    public void setSex(String sex) {        this.sex = sex;    }            public void print(){        super.print();        System.out.println("我的性別是"+this.getSex()+"。");    }}
Penguin 類

 

 

package cn.jbit.epet.inherit2;/** *  * @author: 房上的貓 *  * @time: 下午3:51:59 *  * 部落格地址: https://www.cnblogs.com/lsy131479/ * */  /*  * 測試類別,測試類別的繼承。  */public class Test {    public static void main(String[] args) {        // 1、建立寵物對象pet並輸出資訊        Pet pet = new Pet("貝貝");        //pet.print();        // 2、建立狗狗對象dog並輸出資訊        Dog dog = new Dog("歐歐", "雪娜瑞");        dog.print();        // 3、建立企鵝對象pgn並輸出資訊        Penguin pgn = new Penguin("楠楠", "Q妹");        pgn.print();    }}
測試類別

 

final用法:

final修飾屬性,方法和類

 可以修飾類:最終版的類
 不希望再被其他類繼承

 

public finla class text{}

 


 可以修飾方法
 方法不希望被重寫

public class text{        public final void text1(){}}

 


 可以修飾變數:(常量)最終版的屬性值
 屬性不希望被修改

 

public class text{            public final int a;}

 

 

總結:
 抽象類別和抽象方法:
   抽象類別不能被執行個體化‘
   可以有0~多個抽象方法
   非抽象類別必須重寫父類的所有抽象方法
 final修飾符:
   修飾的類,不能被繼承
   修飾的方法,不能被子類重寫
   修飾的變數將編程常量,只能在初始化時進行賦值

 

 

 

(C) 房上的貓 。 著作權所有,並保留一切權利。
 https://www.cnblogs.com/lsy131479/

如需轉載,請註明出處!!!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.