java子類繼承
Ⅰ java中子類和父類繼承關系的應用
父類更多的是一個繼承的作用,比如我現在需要製作好多傢具,但是這些傢具專都有一些共同特性:都是實屬木,加工程序,銷售程序等,然後沙發有沙發的特性,桌子有桌子的特性,定義類的繼承主要是為了更好的拓展,比如某天我所有的傢具的加工程序突然都改變了,如果沒有父類,我是不是要在所有的子類裡面都去重新修改加工程序?但是如果這些傢具都繼承了同一個父類的話,我就只需要修改父類(也就是傢具)的加工程序,就不需要沙發、桌子什麼的都修改了。。
而父類的作用還不僅如此,比如我現在需要執行「加工」這一方法,但是我不知道是執行加工沙發還是執行加工桌子,那麼久直接選擇執行加工傢具了,類的繼承一個是方法屬性的繼承,還有就是一種規范(跟介面一樣)。。
Ⅱ java中有什麼子類繼承父類的實例
class A
{
int x=12;//被繼承
static double y=34;//被繼承
final int xx=123;//被繼承,不能修改xx的值,一經初始化就內被看作常量使容用
private float r=12.0f;//不能被繼承
A()//不能被繼承
{
//====構造方法體
}
public void f(){}//被繼承
protected void d(){}//被繼承
private void k(){}//不能被繼承
final void gg(){}//被繼承,不能被覆蓋
void w(){}//被繼承
//也就是說構造函數和被關鍵字private修飾的東西都不能被繼承
}
class B extends A
{
//========
//=======
//A的類體
}
Ⅲ Java子類繼承父類
沒有重寫就不是多態,還是調父類方法。Book book = new StoryBook(); book在內存堆中有子類和父類的Color屬性,book.color 就是調用父類的屬性。多態適用於方法,不適用屬性。
Ⅳ java子類能繼承父類屬性嗎
子類可以繼承父類中非private的屬性。你new 了一個B對象xx,但是聲明為父類A類型,所以,調用xx.i的時候實際上是訪問了父類的屬性值
Ⅳ java的子類間能否相互繼承或引用,怎麼繼承或引用
子類之間不能相互繼承和引用,一個類只能繼承一個父類,就像一個孩子只能有1個爹,但是1個爹可以有多個孩子,孩子之間不存在引用,不能轉換類型
Ⅵ 如何在Java中使用子類繼承父類的父類,舉個例子看看,謝謝
class Animal{//動物類
制public String name="haha";//名字
public void say() {//說話方法
System.out.println(name+" say hi");
}
}
class Cat extends Animal{//貓類繼承了動物類
}
public class Test {
public static void main(String[] args) {
Cat cat=new Cat();//實例化一個貓
cat.say();//由於貓繼承了動物,所以繼承了他所有非private的屬性和方法
}
}
Ⅶ java中子類能繼承父類的父類嗎
繼承。Java中所有的類都有一個共同的父類(嚴格說是父類的父類的……父類)——Object類。
所有的類都可以用自己的實例調用Object類中定義的非private的成員方法,因為它們都是Object的子類。
Ⅷ java子類如何繼承父類怎麼寫啊
//希望以下代碼可以幫到你,這就是一個最簡單的類的繼承,你的那個仿寫以下就行了。
class A
{
void printa()
{
System.out.println("這是A類的語句");
}
}
class B extends A
{
void printB()
{
System.out.println("這是B類的語句");
}
}
public class Test1
{
public static void main(String[] args)
{
new A().printa();
new B().printB();
new B().printa();
}
}
//
Ⅸ java中子類繼承父類後,能不能添加自己的方法
當然是可以添加的,前提是你正確聲明了子類,即:
Dog b = new Dog();
如果你是想嘗試《Head First Java》中提到的多態,即:
Animal b = new Dog();
這里Animal是Dog的父類(Dog extends Animal / Dog IS-A Animal)
但是Animal class下面並沒有bark()這個方法,所以當你調用b.bark()時會出錯。原因就是,Animal類中沒有這個方法。子類中你確實添加了bark(),但是不要忘記,b是一個Animal類的reference,而不是一個Dog類的reference。父類是無法繼承子類中的方法的。
所以,解決方法就是,在Animal類下面手動添加bark()方法,這樣b所屬的Animal類下就有bark()這個方法了。然後才是多態的內容:b被聲明為Animal類型,但是卻是一個Dog類(Animal的子類)的對象。所以實際運行的時候,調用的是Dog類的重寫(override)之後的bark()方法。
另外,《Head First Java》第八章里對此有詳細的描述。如果你一定要這樣用,可以新聲明另外一個Dog reference,例如o:
Animal b = new Dog();
Dog o = (Dog) b;
o.bark();
這樣也是可以的