namespace MVATwentyQuestions
{
class Test
{
// 故意用 public 來方便 demo,實務上應該設為 private
public string _name = "";
public Test(string name)
{
_name = name;
}
public virtual void ConvertToUpper()
{
_name = _name.ToUpper();
}
}
}
namespace MVATwentyQuestions
{
class InheritTest : Test
{
// 錯誤的呼叫方式
// base("NewName");
// Demo1 和 Demo2 只能存在一個,請自行轉換 comment 來觀察結果
// demo1:正確呼叫 base 的方式
public InheritTest(string name): base(name)
{
}
// demo2:呼叫 base 前,先利用 method 把參數都變成大寫
public InheritTest(string name): base(ModifyBase(name))
{
}
private static string ModifyBase(string newName)
{
return newName.ToUpper();
}
}
}
namespace MVATwentyQuestions
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine();
Test nTest = new Test("Base");
Console.WriteLine(nTest._name);
InheritTest iTest = new InheritTest("NewName");
Console.WriteLine(iTest._name);
}
}
}
Demo1 結果
Demo2 結果
沒有留言:
張貼留言