我有一个Person类(父类),其中包含一些属性。假设有2个属性。我想从Person类(Parent类)(Parent类)访问Student(子类)的2个属性中的1个属性。
注意:所有属性都是公共的,我需要在其他子类中使用。
如何使用C#实现该目标? (这适用于任何面向对象的编程语言)
下面是我的示例代码。
using System;
public class Person
{
public string name; //only want this property in all child classes
public float salary; //don't want to access this property in Student
}
public class Student: Person
{
public string subject;
}
public class Employee: Person
{
public int employeeId;
}
答案 0 :(得分:0)
除非所有人员都有薪水,否则您不应在“人员”中将薪水作为字段使用, 而是应该进入Employee类或使用薪水的最高类
答案 1 :(得分:0)
您的代码中存在一个概念性问题!薪资属性不够普遍,无法纳入人员类别(并非每个人都有薪水)。您不应将此属性包含在Person类中。 仅在以下情况下使用界面才有帮助:
希望有帮助!
答案 2 :(得分:-1)
您可以使用界面来实现您的目标。它不会阻止编译器为学生对象创建Salary属性。但是,通过使用IStudent,您可以限制最终用户的访问。
public class Person
{
public string Name { get; set; } //only want this property in all child classes
public float Salary { get; set; } //don't want to access this property in Student
}
interface IStudent
{
string Name { get; set; }
string Subject { get; set; }
}
public class Employee : Person
{
public int EmployeeId { get; set; }
}
public class Student : Person, IStudent
{
public string Subject { get; set; }
}
class Program
{
static void Main(string[] args)
{
IStudent s = new Student() { Name = "Student1", Subject = "Subject1" };
Console.WriteLine(s.Name);
}
}