C#的抽象类能否定义变量?

mary0226 2004-09-16 07:51:07
C#的抽象类能不能定义变量,如果能定义变量那么怎样调用它,并请给出一个例子!
...全文
867 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
luaiping 2004-10-25
  • 打赏
  • 举报
回复
不可以
可以定义抽象属性
mary0226 2004-10-25
  • 打赏
  • 举报
回复
我的意思是就象定义公共变量那样,可不可以定义抽象变量,如果可以的话,那要怎么引用
qpl007 2004-10-21
  • 打赏
  • 举报
回复
抽象类中只能定义抽象方法的方法签名,不能定义实现!
mary0226 2004-10-15
  • 打赏
  • 举报
回复
to qpl007(蓝色闪电) :
我看明白你给我的例子了
你的例子和gaoxiaospring(gaoxiaospring)一样
但是我不是问的那个意思!
我的意思是up
mary0226 2004-10-15
  • 打赏
  • 举报
回复
to NoReady(亦正亦偏):
我看了你的方法 ,但是我问的不是这个!
up!
mary0226 2004-10-15
  • 打赏
  • 举报
回复
to gaoxiaospring(gaoxiaospring):
你这个是抽象方法
我问的是可不可定义抽象类当中定义:
public abstract Paint;
如果可以那怎么调用?
gaoxiaospring 2004-10-15
  • 打赏
  • 举报
回复
using System;

namespace Ex01
{

public abstract class ITest
{
public ITest() {}

public void Paint()
{
Console.WriteLine("ITest.Paint");
}
public abstract void Print();
}
public class Test:ITest
{
public override void Print()
{
Console.WriteLine("Test.Print");
}

}
public class CTest
{
[STAThread]
static void Main(string[] args)
{
//ITest a=new ITest();//Error
ITest a=new Test();
a.Print();
a.Paint();
}
}

}
qpl007 2004-10-15
  • 打赏
  • 举报
回复
bb类要继承自aa

public class bb:aa
{
...
public override void AbstractMethod()
{
//do something
}
...
}
qpl007 2004-10-15
  • 打赏
  • 举报
回复
>>>>>>>>ab.cs(13,14): error CS0534: “bb”不会实现继承的抽象成员“aa.AbstractMethod()”
就是报的这个错误!

你得在类bb里实现aa.AbstractMethod()啊!

public class bb
{
...
public override void AbstractMethod()
{
//do something
}
...
}

mary0226 2004-10-14
  • 打赏
  • 举报
回复
up
mary0226 2004-10-13
  • 打赏
  • 举报
回复
ab.cs(13,14): error CS0534: “bb”不会实现继承的抽象成员“aa.AbstractMethod()”
就是报的这个错误!
mary0226 2004-10-08
  • 打赏
  • 举报
回复

to qpl007(蓝色闪电):
我用了可是在执行的时候抽象方法确报错。
各位兄弟姐妹们:
有没有谁能帮帮忙啊

yxred 2004-10-08
  • 打赏
  • 举报
回复
不能用 new 抽象类,但可定义一个指针,用子类实例初始化,调用其成员
qpl007 2004-10-08
  • 打赏
  • 举报
回复
>>>>>>>>>>>>>>我用了可是在执行的时候抽象方法确报错

报什么错?
mary0226 2004-10-08
  • 打赏
  • 举报
回复
没有人回答啊
自己UP
mary0226 2004-10-08
  • 打赏
  • 举报
回复
自己 DING
simonllf 2004-09-17
  • 打赏
  • 举报
回复
MARK
qpl007 2004-09-17
  • 打赏
  • 举报
回复
不好意思,打错了,修改一下类 cc:

public class cc
{
public void SomeMethod()
{
bb x=new bb();
(x as aa).value = "xxx";//调用
(x as aa).aamethod();
}
}
khzide 2004-09-17
  • 打赏
  • 举报
回复
可以定义,但因为不可以创建实类,所以可以在实现类中访问。
qpl007 2004-09-17
  • 打赏
  • 举报
回复
例如:

public abstract class aa //抽象类,不能被实例化
{
public string value;//声明

public void aamethod()
{
...//操作
}
...
public abstract void AbstractMethod();//抽象方法
}

public class bb:aa //在这里实现抽象类的抽象方法
{
...
}

public class cc
{
public void SomeMethod()
{
bb x=new bb();
(bb as aa).value = "xxx";//调用
(bb as aa).aamethod();
}
}
加载更多回复(6)

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧