请教一下C#的泛型编程 楼主好像发错地方了,这里是java板块 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码有一个错误,倒数第二行代码应为:graph = (Graph)rect; abstract class Graph//自动作为基类{ public Graph(){}}class Rectangle{ Rectangle(){} void move(Size distanse){} void resize(Size size){}}class Line{ Line(){} void move(Size distanse){} void resize(int length){}}class Ellips{ Ellips(){} void move(Point p, Size distanse){} void resize(int radius){}}基类不能调用派生类的方法。 呵呵,你的代码当然可以。不过,对于resize,在graph类中,必须定义为abstract,否则,会调用graph的rersize,而不能正确的调用派生类的resize了。 谢谢各位的解答。关于多态与泛型的区别我的确有些混淆,第一贴与下面代码,都是多态的运用吗?class Line: Graph{ Line(){} void resize(Size size); void resize(Point lt, Point rb)} 另外如果以Graph中我已经如下声明:abstract void resize(){}那么在子类中我是不是必须要加上override来声明参数不同的resize? 很多时候override不是必须的,但象你这样的abstract函数是要添加的。 最好先创建个基类,然后子类继承他,override必须的,所有的抽象属性和方法比须在子类里面实现 我试验了一下:abstract class Graph{ Graph(){} abstract void move();}class Rectangle: { Rectangle(){} void move(Size distanse){} void resize(Size size){}}这样是不行的,那么是否要把Graph.move声明为virtual?不管是抽象方法还是虚方法,派生类重载时都必须与基类中定义的原型相同,这样就不能达到我的要求。请指教! 我现在这么干了,达到了自己的要求,但觉得不是很好。class Graph{ Graph(){} virtual void move(Size distanse){} virtual void move(Point p, Size distanse){} virtual void resize(Size size){} virtual void resize(int radius){}}class Rectangle{ Rectangle(){} overide void move(Size distanse){} overide void resize(Size size){}}class Line{ Line(){} overide void move(Size distanse){} overide void resize(int length){}}class Ellips{ Ellips(){} overide void move(Point p, Size distanse){} overide void resize(int radius){}} 还没讲清楚呢,别急啊, liulangxin(流浪星)。 vs2003 没有泛型,vs2005才有!泛型,望文生义,泛:不确定,型:数据类型。即定义的数据是未确定的数据类型,编译时也不确定,运行时才按需指定。(个人理解,不知是否准确) c# mediaplayer 播放问题 键盘钩子监控多媒体键盘的问题!!! FLV播放器asp.net求一段码,如果有详解更好[100分] 急,急,急~~~ .vwws文件,里面内容是XML格式的,C#可以解析吗 在控制面板-管理工具-Internet信息服务下启动默认网站时出错,请大家帮忙看看? 请教高手:如何获取一个.aspx文件的HTML:浏览器编译前的HTML?浏览器编译后的HTML? 高手请进:哪位有表格控件开发的资料或经验 EF映射的一个问题 求助。。C# 存储过程 问题 各位帮忙分析一下我女友现在是怎么想的?? 请教高手的学习方法
graph = (Graph)rect;
{
public Graph(){}
}class Rectangle
{
Rectangle(){}
void move(Size distanse){}
void resize(Size size){}
}
class Line
{
Line(){}
void move(Size distanse){}
void resize(int length){}
}
class Ellips
{
Ellips(){}
void move(Point p, Size distanse){}
void resize(int radius){}
}
基类不能调用派生类的方法。
关于多态与泛型的区别我的确有些混淆,第一贴与下面代码,都是多态的运用吗?
class Line: Graph
{
Line(){}
void resize(Size size);
void resize(Point lt, Point rb)
}
abstract void resize(){}
那么在子类中我是不是必须要加上override来声明参数不同的resize?
abstract class Graph
{
Graph(){}
abstract void move();
}
class Rectangle:
{
Rectangle(){}
void move(Size distanse){}
void resize(Size size){}
}
这样是不行的,那么是否要把Graph.move声明为virtual?不管是抽象方法还是虚方法,派生类重载时都必须与基类中定义的原型相同,这样就不能达到我的要求。请指教!
class Graph
{
Graph(){}
virtual void move(Size distanse){}
virtual void move(Point p, Size distanse){}
virtual void resize(Size size){}
virtual void resize(int radius){}
}
class Rectangle
{
Rectangle(){}
overide void move(Size distanse){}
overide void resize(Size size){}
}
class Line
{
Line(){}
overide void move(Size distanse){}
overide void resize(int length){}
}
class Ellips
{
Ellips(){}
overide void move(Point p, Size distanse){}
overide void resize(int radius){}
}
泛型,望文生义,泛:不确定,型:数据类型。即定义的数据是未确定的数据类型,编译时也不确定,运行时才按需指定。(个人理解,不知是否准确)