use*_*121 2 c# polymorphism access-modifiers
我有两个课程,这是我的代码:
//My Base class
public class People
{
public People()
{
}
protected string name;
protected string Name
{
get
{
return this.name;
}
set
{
this.name = value;
}
}
}
//The Child class
public class Student:People
{
private int id;
public Student()
{
}
public Student (int id, string name)
{
this.id = id;
this.Name = name;
}
public int ID
{
get
{
return this.id;
}
set
{
this.id = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我创建Student类的实例(如下面的实例)时,我无法从父类People中访问NAME属性。
public partial class Form1 : Form
{
private void button1_Click(object sender, EventArgs e)
{
Student student1 = new Student();
student1. // only ID property is accessible
}
}
Run Code Online (Sandbox Code Playgroud)
我做错什么了吗?由于Student是People的子类,因此我希望可以通过Student实例访问NAME属性。非常感谢您的帮助。
您没有做错任何事情,但是如果您想访问
Name
Run Code Online (Sandbox Code Playgroud)
通过一个实例
Student
Run Code Online (Sandbox Code Playgroud)
您必须声明该属性public
。否则,仅允许从该类内部访问(不允许通过实例)。