繼承:
即子類繼承父類的特性並拓展之。
我現在有三個類:
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的孫子類中直接引用到爺爺類的方法呢?