0
我有以下代碼。父類和子類
using System;
public class Program
{
public static void Main()
{
Employee FTE = new FullTimeEmployee();
}
}
public class Employee
{
public string FirstName;
public string LastName;
public void PrintFullName()
{
Console.WriteLine(FirstName + " " + LastName);
}
}
public class FullTimeEmployee : Employee
{
public float YearlySalary;
}
我只是想澄清一件事。
如果我寫Employee FTE = new FullTimeEmployee();
是創建的對象只能訪問FirstName,LastName,PrintFullName和NOT YearlySalary?
如果我寫FullTimeEmployee FTE = new FullTimeEmployee();
創建的對象是否能夠訪問所有內容,包括YearlySalary?
感謝
你爲什麼不試試這個呢? –
我只是想確定我是否理解正確。 – jelly
很抱歉讓您困惑,但「創建的對象」在這兩種情況下都是「FullTimeEmployee」。您*將*(引用)賦予一個變量,該變量可以處理「Employee」或「FullTimeEmployee」,具體取決於您如何聲明它。如果將該變量聲明爲「Employee」,則不能通過該變量(直接)訪問該對象的'YearlySalary'字段。但是該領域仍然存在於這個對象上。而且它會像'((FullTimeEmployee)FTL).YearlySalary'來訪問它一樣簡單。 – Corak