在
現在我們將更深入的考察多重繼承性以及Java是如何處理它的
深入繼承性
一些面向對象的語言提供叫做
初看起來這是相當簡單的;但是
我在前面的文章裡就已經說過
public interface LandAnimal
{
public int getNumberOfLegs();
public boolean hasATail();
}
一個使用接口的類在類定義語句的開始添加implements+接口名
public class Frog extends Animal implements LandAnimal
接口並沒有什麼實際的功能;相反
Frog aFrog = new Frog();
int legCount = ((LandAnimal)aFrog)
Boolean gillFlag = ((WaterAnimal)aFrog)
注意Forg為什麼能夠被強制轉換成一個LandAnimal對象即使實際的LandAnimal對象並沒有被創建
深入多態性
Java使用動態綁定來使多態成為可能
public String getHello();
public String getHello(int mood);
現在
public class HelloWorld
{
public static void main(String[] args)
{
Dog animal
Cat animal
Duck animal
System
+
+
+
System
+
+
+
System
+
+
+
}
}
abstract class Animal
{
public static final int SCARED =
public static final int COMFORTED =
public boolean isAMammal()
{
return(true);
}
public boolean isCarnivorous()
{
return(true);
}
abstract public String getHello();
abstract public String getHello(int mood);
}
interface LandAnimal
{
public int getNumberOfLegs();
public boolean hasATail();
}
interface WaterAnimal
{
public boolean hasGills();
public boolean laysEggs();
}
class Dog extends Animal implements LandAnimal
{
// 重載父類的方法
public String getHello()
{
return(
}
public String getHello(int mood)
{
switch (mood) {
case SCARED:
return(
case COMFORTED:
return(
}
return(
}
// LandAnimal 接口的實現
public int getNumberOfLegs()
{
return(
}
public boolean hasATail()
{
return(true);
}
}
class Cat extends Animal implements LandAnimal
{
// 重載父類的方法
public String getHello()
{
return(
}
public String getHello(int mood)
{
switch (mood) {
case SCARED:
return(
case COMFORTED:
return(
}
return(
}
// LandAnimal 接口實現
public int getNumberOfLegs()
{
return(
}
public boolean hasATail()
{
return(true);
}
}
class Duck extends Animal implements LandAnimal
{
// 重載父類的方法
public String getHello()
{
return(
}
public String getHello(int mood)
{
switch (mood) {
case SCARED:
return(
case COMFORTED:
return(
}
return(
}
public boolean isAMammal()
{
return(false);
}
public boolean isCarnivorous()
{
return(false);
}
// WaterAnimal 接口實現
public boolean hasGills()
{
return(false);
}
public boolean laysEggs()
{
return(true);
}
// LandAnimal 接口實現
public int getNumberOfLegs()
{
return(
}
public boolean hasATail()
{
return(false);
}
}
程序執行後輸出的結果如下:
A dog says Bark
A cat says Meow
A duck says Quack
總結
綜合繼承
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26843.html