C#..请高手告诉我抽象类中的构造函数的用法,谢谢了。

在抽象类中的构造函数应该怎么声明?访问树根如何?什么时候应该有构造函数?谢谢了。

先有一个基本的概念:抽象类不可以实例化。也就是说,如果你声明了这样一个类:
public abstract class BaseClass
{
public int someProperty = 0;
public BaseClass(int property)
{
this.someProperty = property;
}
}
然后在客户端BaseClass base = new BaseClass(1);这样调用的话,编译器会报错。
抽象类的构造函数只能在其子类的构造函数中调用,也就是说,不管是否是抽象类,无参构造自动调用,带参数的构造函数必须显式调用。可以这样在子类中调用父类的构造函数(使用base关键字):
public class ChildClass : BaseClass
{
public ChildClass(int property)
: base(property)
{

}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-08-18
abstract (C# 参考)
abstract 修饰词可用於类别、方法、属性、索引子 (Indexer) 和事件。在类别宣告里使用 abstract 修饰词,表示该类别只是当做其他类别的基底类别而已。成员如果标记为抽象,或是包含在抽象类别 (Abstract Class) 内,则必须由衍生自此抽象类别的类别实作这个成员。

::::::!!!!
抽象类根本没有实作,又要衍生类来实作,构造函数又不可以继承,在抽象类中加构造函数和参数都是没有用的.我试过加上也不会报错.
第2个回答  2009-08-18
抽象类中的构造函数声明与普通类一样,但抽象类不能被实例化,只能实例它的子类
第3个回答  2009-08-18
抽象类中应该是析构函数。你在网上查一下析构函数

java中,抽象类可以有构造方法吗?
抽象类可以有构造方法,只是不能直接创建抽象类的实例对象而已。在继承了抽象类的子类中通过super(参数列表)调用抽象类中的构造方法 示例代码如下:运行结果:

C#中关于抽象类的问题。
投象类是不可以实例化的。这里所谓类实例化指的就是类在生成过程中调用了类的构造函数,则称该类为实例化。而抽象类没有构造函数,所以是无法实例化的。在C#编译器环境下,具体类即使不写构造函数,编译系统也会自动增加默认的实例函数,以便实例化,但是对于声明为abstract的类,术语称“抽象类”或“...

C#中抽象类和接口的区别与使用
抽象类是特殊的类 只是不能被实例化 除此以外 具有类的其他特性 重要的是抽象类可以包括抽象方法 这是普通类所不能的 抽象方法只能声明于抽象类中 且不包含任何实现 派生类必须覆盖它们 另外 抽象类可以派生自一个抽象类 可以覆盖基类的抽象方法也可以不覆盖 如果不覆盖 则其派生类必须覆盖它们 二 ...

...有明确的构造函数。 这句话是什么意思?求JAVA高手指点
1.凡是抽象类,就一定会是某个类的父类!否则,这个抽象类的存在没有意义,因为抽象类不能被实例化。2.既然抽象类一定是某一个类的父类,所以,这个抽象类一定要有构造函数!因为在子类的构造函数中不管显式,还是隐式,都必须使用到super语句。这样,抽象类的子类才能成功实例化。3.抽象类也有构造...

C#中什么叫抽象成员
抽象成员访问修饰符不能是Private.抽象类中可以包含实例成员。因此抽象类中有构造函数,虽然不能实例化。抽象类就是为了让子类继承。(来实现多态),它定义的就是公共的实现和能力。抽象方法不能用Static来修饰。 抽象类可以用来实现接口抽象方法与虚方法使用时的区别:如果父类中的方法有默认的实现,并且...

用最简单的话解释一下C#中什么是抽象工厂
用抽象类来实现的工厂,隐藏类的构造函数(将其访问限制设置为非public),用抽象类的CreateInstance来创建抽象类的子类的实例

C#.NET里面抽象类和接口有什么区别?
首先抽象类中有抽象成员和非抽象成员(和普通类成员一样),而接口的所有成员都必须在实现接口的代码类中实现。抽象类可以有自己的字段,但是接口不能有自己的字段,构造函数,析造函数,静态成员或常量。从用途上来说,抽象类主要是提供为对象系列的基类,共享一些主要特性,使继承于一个抽象类的对象都...

C#中抽象类和接口的区别与使用
接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。一个类可以直接继承多个接口,但只能直接继承一个类(包括抽象类)。 其实java的接口和抽象类跟C#是差不多的, 他们的特性是...

c#接口与抽象类的疑问
接口一般用于更高层次的抽象和概括。他这个例子也能理解,人、鱼、青蛙,共性较少,只能用一些零散的方法来描述共性,那么就用接口;后者共性较多,把后者的共有方法、属性归纳起来,可以大致组成一个 AbstractFish 类了,那么就用抽象类。而会游泳,作为接口,可以适用多个不同的类。

在C#中,类,抽象类和接口之间有什么共同点和不同点?
1.接口是包含一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值。接口方法不能包含任何实现,CLR允许接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数。如果创建的功能将在大范围的全异对象间使用,则使用接口。2.抽象类提供多个派生类共享基类的公共定义,它既可以...

相似回答