物件導向實作課程(使用C#)上課心得

方法

方法的組成如下

sample in java
封裝等級 修飾詞 回傳型別 方法名稱 參數類型
public final Object getItem(int position){

  //方法內容

  return object; //回傳值
}

方法的使用可如下範例

public static void main(String[] args) {
  int sum = sum(1, 2);
}

private int sum(int x, int y){
  return x + y;
}

方法覆寫 C#

在 C# 只有虛擬方法可以覆寫,虛擬方法需要加上修飾詞 virtual 宣告虛擬方法,當要重新定義方法時可透過修飾詞 override 修改方法內容,範例如下:

class Aniaml 
{
    protected virtual void sleep() 
    {
        Console.WriteLine("sleep 8 hours");
    }
}

class Cat : Aniaml 
{
    protected override void sleep()
    {
        //base.sleep(); 可透過 base 互叫父類別的方法
        Console.WriteLine("sleep 14 hours");
    }
}

若不想讓子類別修改方法的內容可以透過修飾詞 sealed 遮蔽方法

class Aniaml 
{
    protected sealed virtual void sleep() 
    {
        Console.WriteLine("sleep 8 hours");
    }
}

方法覆寫 Java

在 Java 中所有方法都是虛擬方法,若不想讓子類別覆寫可透過 private 或是 final 修飾詞防止子類別覆寫

class Animal{
    protected void sleep(){
        System.out.println("sleep 8 hours");
    }
}

class Cat extends Animal{
    @Override
    protected void sleep() {
        //super.sleep(); super 同 C# base 用法
        System.out.println("sleep 14 hours");
    }
}