我是新來的Asp .net C#。我有關於對象和繼承的問題。 如果我有父類(Base-Table)有2個子類(信用卡表,銀行帳戶表)我很開心。在另一個從基表類獲取對象的類中。 我的問題是我想知道基表是信用卡還是銀行帳戶?Asp.Net C#對象相關問題
class BaseTable
{
string date;
public string Date
{
get { return date; }
set { date = value; }
}
string description;
public string Description
{
get { return description; }
set { description = value; }
}
}
class CreditCardTable:BaseTable
{
string Amount;
public string amount
{
get { return Amount; }
set { Amount = value; }
}
string Type;
public string type
{
get { return Type; }
set { Type = value; }
}
}
class BankAccountTable:BaseTable
{
string Refr;
public string Ref
{
get { return Refr; }
set { Refr = value; }
}
string debit;
public string Debit
{
get { return debit; }
set { debit = value; }
}
string credit;
public string Credit
{
get { return credit; }
set { credit = value; }
}
}
往往不是這樣的事情是設計錯誤的指示。也許'BaseTable'應該是'abstract'?也許其他代碼需要一個子實例而不是基礎實例?什麼樣的具體原因你需要知道實例的類型? – David
爲什麼你需要知道你的'BaseTable'是什麼類型?通常這意味着你的設計出錯了。解決這個問題的通常方法是在'BaseTable'中創建一個虛擬/抽象方法,該方法在派生類中被覆蓋以實現特定於類型的行爲。這樣,任何使用BaseTable引用的東西都可以調用虛方法並根據「BaseTable」引用的實際類型獲取不同的行爲。 – spender
其創建PDF的代碼有2種類型的pdf信用卡pdf和銀行帳戶pdf所以在業務中我想檢查如果obj是信用卡或銀行賬戶,所以我可以選擇哪一個創建 – user2401745