
c#中,vs编译环境下,假如我在基类里写了一个实例化的方法,派生类创建对象时,可以直接通过继承使用
c#中,vs编译环境下,假如我在基类里写了一个实例化的方法,派生类创建对象时,可以直接通过继承使用吗?比如我通过new关键字要创建研究生对象st1,创建高中生对象st2,...
c#中,vs编译环境下,假如我在基类里写了一个实例化的方法,派生类创建对象时,可以直接通过继承使用吗? 比如我通过 new 关键字要创建研究生对象st1,创建高中生对象st2,和一个初中生st3,他们继承于学生类(基类),假如我现在在基类里写一个创建学生st的方法,有没有一种手段,可以让他们通过继承基类创建对象的方法,从而创建出自身的对象,而不是通过重写基类的创建方法,希望能有大神指点一下,谢谢啦!
展开
1个回答
展开全部
首先,你“实例化的方法”这个描述就不正确,C#里没有这样的概念,所以不知道你想提问是“实例方法”还是“构造函数”
如有以下情况:
class StudentBase
{
public StudentBase(String category) {}
public void Foo() {}
}
class Junior : StudentBase
{
public Junior() : base("Junior") {}
}
如果你问题说的是“实例方法”,那么,Junior当然可以调用Foo方法;
如果你想说的是“构造函数”,那么,当StudentBase不存在默认构造函数时,Junior必须显式调用StudentBase的构造函数。
更多追问追答
追问
我当初写学生基类的时候没有用构造函数,而是直接new了一个对象,然后直接通过属性赋值创建的st,现在我想派生一个研究生类,该如何创建研究生对象呢,难道必须用构造函数吗
追答
你基类没有显式编写构造函数,默认就是一个无参的构造函数,派生类构造的时候默认就会调用这个构造函数,不用额外显式声明。
只有上述情况:基类不存在无参构造函数时,才需要派生类在构造函数上显式声明调用基类的构造函数。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |