摘要:繼承
繼承:子類別繼承父類別,避免重複的行為與實作定義。子類別與父類別會有一種is-a的關係。
SwordsMan 是一種Role。
//Role.java
public class Role {
private String _name;
private int _level;
public void SetName(String name){
this._name = name;
}
public String GetName(){
return _name;
}
public void SetLevel(int level){
this._level = level;
}
public int GetLeve(){
return _level;
}
public void Print(){
System.out.println("姓名:" + _name );
System.out.println("等級:" + String.valueOf(_level));
}
}
//SwordsMan.java
//繼承Role並且新增fight方法。
public class SwordsMan extends Role{
public SwordsMan(String name, int level){
SetName(name);
SetLevel(level);
}
public void fight(){
System.out.println("揮劍攻擊");
}
}
//抽象類別
public abstract class Role{
...略
public abstract void fight();
}
public class SwordsMan extends Role{
//Override 抽象類別的fight方法
public void fight(){
System.out.println("揮劍攻擊");
}
}
子類別可以直接存取父類別Protected的成員
//Role.java
public abstract class Role{
protected String _name;
protected int _level;
public abstract void fight();
}
//Magician.java
public class Magician extends Role{
public Magician(String name, int level){
this._name = name;
this._level = level;
}
public void fight(){
System.out.println("魔法攻擊");
}
public void Print(){
System.out.println("姓名" + this._name);
System.out.println("Level" + this._level);
}
}
//Main.java
Magician mg = new Magician("Allen",100);
mg.Print();