繼承及java範圍public ,private ,protected 及不寫時的區別

來源:互聯網
上載者:User

繼承:
即子類繼承父類的特性並拓展之。

我現在有三個類:
GrandFather Father Son
其中的關係是一級繼承一級。

其中都有一個共有的方法:
public void tellStory()

直接上代碼:
GrandFather類:
package demo;

public class GrandFather {

    protected void tellStory() {
        System.out.println("你爺爺我......");
    }

}

Father類:
package demo;

public class Father extends GrandFather {

    protected void tellStory() {
        System.out.println("你爸爸我......");
    }

}

Son類:
package demo;

public class Son extends Father {

    public void tellStory() {
        System.out.println("我......");
    }

}

第一個Test類:
package demo;

public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Son son = new Son();
        son.tellStory();
    }

}

第二個Test類:
package test;

import demo.Father;
import demo.Son;

public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {

        Son son=new Son();
        son.tellStory();
       
    }

}

1.子類只能把父類方法可視許可權放大 不能縮小。
如:
tellStory()在爺爺類中為public,爸爸類就不能使之為protected或者private

2.public private protected:
public:在任何處都可以調用
private:只能在本類中調用
protected:子類中或者同一個包內使用。

    以下說的更好:

http://blog.csdn.net/ladofwind/archive/2006/06/05/774072.aspx

在說明這四個關鍵字之前,我想就class之間的關係做一個簡單的定義,對於繼承自己的class,base class可以認為他們都是自己的子女,而對於和自己一個目錄下的classes,認為都是自己的朋友。

    1、public:public表明該資料成員、成員函數是對所有使用者開放的,所有使用者都可以直接進行調用

    2、private:private表示私人,私人的意思就是除了class自己之外,任何人都不可以直接使用,私人財產神聖不可侵犯嘛,即便是子女,朋友,都不可以使用。

    3、protected:protected對於子女、朋友來說,就是public的,可以自由使用,沒有任何限制,而對於其他的外部class,protected就變成private。

 

 

    範圍 當前類 同一package 子孫類 其他package

    public       √            √           √            √

    protected √            √           √            ×

    friendly     √             √           ×           ×

    private     √              ×           ×           ×

    不寫時預設為friendly

3.如何在Java的孫子類中直接引用到爺爺類的方法呢?

相關文章

聯繫我們

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