新聞中心
JAVA:編寫一個(gè)動(dòng)物的繼承關(guān)系代碼.
下面是一個(gè)簡(jiǎn)單的 Java 程序示例,用于實(shí)現(xiàn)山羊和狼的繼承關(guān)系,并在測(cè)試類中進(jìn)行驗(yàn)證:
在申扎等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需開發(fā)網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),營(yíng)銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,申扎網(wǎng)站建設(shè)費(fèi)用合理。
Animal.java:
```java
public abstract class Animal {
public void walk() {
System.out.println("走路");
}
public abstract void eat();
}
```
Goat.java:
```java
public class Goat extends Animal {
@Override
public void eat() {
System.out.println("吃草");
}
}
```
Wolf.java:
```java
public class Wolf extends Animal {
@Override
public void eat() {
System.out.println("吃肉");
}
}
```
AnimalTest.java:
```java
public class AnimalTest {
public static void main(String[] args) {
Goat goat = new Goat();
wolf wolf = new wolf();
goat.eat(); // 輸出:吃草
wolf.eat(); // 輸出:吃肉
goat.walk(); // 輸出:走路
wolf.walk(); // 輸出:走路
}
}
```
在此程序中,我們定義了一個(gè) `Animal` 類作為基類,包含了所有動(dòng)物都會(huì)有的行為(例如走路),并使用抽象方法 `eat()` 表示不同動(dòng)物的飲食習(xí)慣。然后通過(guò)繼承實(shí)現(xiàn) `Goat` 和 `Wolf` 兩個(gè)子類,并分別重寫 `eat()` 方法。
在測(cè)試類中,我們分別創(chuàng)建了一個(gè) `Goat` 和一個(gè) `Wolf` 對(duì)象,并分別調(diào)用其 `eat()` 和 `walk()` 方法進(jìn)行驗(yàn)證??梢钥吹剑煌膭?dòng)物具備不同的飲食習(xí)慣,但它們的走路行為是一致的。
java 繼承問(wèn)題 實(shí)例化子類之前先要實(shí)例父類 執(zhí)行子類構(gòu)造方法前先執(zhí)行父類構(gòu)造方法 那么如果父
java中擴(kuò)展類的初始化過(guò)程是這樣的,最初虛擬機(jī)會(huì)依次遞推找到最上層的父類,執(zhí)行完類加載與靜態(tài)成員的初始化;當(dāng)main函數(shù)中執(zhí)行代碼,產(chǎn)生某個(gè)子類對(duì)象時(shí),再依次遞歸找到最上層的父類先進(jìn)行成員初始化(對(duì)象引用沒(méi)有直接賦值就初始化為Null),再調(diào)用相應(yīng)的構(gòu)造器產(chǎn)生對(duì)象,然后逐層的進(jìn)行對(duì)象初始化直到最底層的子類。
所以你的問(wèn)題的解答應(yīng)該是如果那個(gè)引用有用new進(jìn)行對(duì)象實(shí)例化,就會(huì)先調(diào)用父類成員引用的構(gòu)造方法初始化成員變量,沒(méi)有初始化只是定義就會(huì)初始化為Null,然后再調(diào)用父類的構(gòu)造器繼續(xù)初始化的。。。= =。java類的初始化都是先初始化非靜態(tài)成員(就是那個(gè)基本變量int,float什么會(huì)初始化為0啊,char會(huì)初始化為空字符啊,boolean初始化false啊神馬那個(gè),對(duì)象引用則是null),再調(diào)用構(gòu)造函數(shù)初始化的。
java內(nèi)部繼承類的實(shí)例化
Coat 類沒(méi)有Coat()這個(gè)構(gòu)造函數(shù),你只定義了一個(gè)有參數(shù)的構(gòu)造函數(shù)。如下。
class Coat extends InnerClassTest.Clothes
{
public Coat(InnerClassTest o)
{
o.super();
}
}
想要不報(bào)錯(cuò),加上一個(gè)Coat()構(gòu)造函數(shù),或者new的時(shí)候加一個(gè)參數(shù)就行。
網(wǎng)站名稱:java繼承代碼實(shí)例化 java實(shí)現(xiàn)繼承的例子
當(dāng)前URL:http://www.dlmjj.cn/article/ddojcis.html