学习C#一段时间了,自己却一直像个门外汉,只跨进了半只脚。发一个自写的练习,与及我对一些问题的思考,错误之处,恳请各位看官不吝赐教。进入正题,下例涉及“protected”访问修饰符的使用,抽象方法的声明及派生类的声明与实例化。以及重写基类的方法等.
using System;
using System.Collections.Generic;
using System.Text;
namespace CTest
{
public abstract class Person
{
/*<<Beginning C# Object>>这本书上说抽象类与接口的区别,抽象类一般(不是必须)
会声明数据结构,所以这里声明一个受保护数据结构,以便子类可以浮生它(name) */
protected string name;
//抽象方法,用abstract声明,它不能实例化。
public abstract void Say();
}
//从Person类派生
public class Student : Person
{
//属性
public string Name
{
set { name = value; }
get { return name; }
}
//构造方法
public Student()
{
Name = "Null";
}
public Student(string name)
{
Name = name;
}
//重写基类方法
public override void Say()
{
Console.WriteLine("{0}说,我是学生", Name);
}
}
public class Test
{
public static void Main()
{
Student student = new Student("wen");
student.Say();
}
}
}
抽象类不能实例化。所以它没有构造函数。即它不能这样Person p = new Person();