[英]Calling overridden method
下面顯示了我的3個類: Person
, Employee
和SalaryEmployee
。
每個類(從右側)從左側繼承該類。 例如: SalaryEmployee
繼承自Employee
。
class Person
{
private string address;
private string name;
public Person(string givenName, string givenAddress)
{
name = givenName;
address = givenAddress;
}
public virtual void outputName()
{
MessageBox.Show("My name is " + name);
}
public void outputAddress()
{
MessageBox.Show("My address is " + address);
}
public void setName(string newName)
{
name = newName;
}
public void setAddress(string newAddress)
{
address = newAddress;
}
}
class Employee : Person
{
private string NINumber;
public Employee(string givenName, string givenAddress) : base(givenName, givenAddress)
{
}
public void setNINumber(string givenNumber)
{
NINumber = givenNumber;
}
public void getNINumber()
{
MessageBox.Show("My National Insurance Number is " + NINumber);
}
}
class SalaryEmployee : Employee
{
private string name;
private string address;
public SalaryEmployee(string givenName, string givenAddress) : base(givenName, givenAddress)
{
name = givenName; address = givenAddress;
}
public override void outputName()
{
MessageBox.Show("My name is " + "S_" + name);
}
}
OOP對我來說是相當新的,我試圖獲得繼承權。 我面臨的問題是我創建了一個名為'PersonFive'的對象:
SalaryEmployee personFive = new SalaryEmployee("Bob", "North Pole");
//忽略我用作參數的地址'北極',它僅用於此示例。
我能夠調用.outputName()
方法,輸出將是:
"My name is Bob"
但是,調用基本方法而不是重寫方法。 我希望它給我的輸出是“我的名字是S_Bob”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.