日期:2014-05-18 浏览次数:20806 次
public class A { public string Gets() { return "A"; } } public class a : A { public string Opter() { return "a"; } } //通过下面的方式调用 A x = new a(); Response.Write(x.Gets());
------解决方案--------------------
从本质讲 实例化是生成一个对象 继承是生成一个类
举个例子
现在有个类叫NEWSTRING(假设现在没有什么STRING 要自己定义)
该类有3个析构函数 一个是NEWSTRING()一个是NEWSTRING(char[] str)一个是NEWSTRING(char[] str,int len)
有两个成员char[] str和int len
有一个方法是getlen 返回int len
好了
现在先说实例化
比如 NEWSTRING str1=new NEWSTRING("abc",3);
那么char[] str就是{'a','b','c'} int len就是3
可以使用str1.getlen 返回3
但只有这些功能了!
然后是继承
public class SUPERSTRING:NEWSTRING
那么 NEWSTRING本来的"功能"(析构函数 成员 方法)他都有 而你下面定义的就是新增的功能(当然也可以什么都不定义 就相当于换个名字 但那个叫:蛋疼....)
现在你定义了一个新的类 但还没有实例化
要SUPERSTRING str2=new SUPERSTRING(....);
------解决方案--------------------
你好
第一个问题是继承,就是A类继承B类,那么A类就有了B类所有的属性和方法(不包括B类私有的).也就是A类是B类的子类(子集).
第二个问题,创建实例需要首先声明一个对象的变量,然后用new关键字去创建一个对象并赋值给声明的对象变量:
例: B A; //B在这里是类型,A是变量的名称
A=new B(); //这里是给这个变量A赋值,赋的值是用new关键字创建的B类型实例.
这时候的A变量已经被赋值了,那么就可以通过A变量调用B类的所有公开的函数及变量了
当然你也可以通过new关键字创建A类型的实例赋值给B类型的变量A。在这种情况下,A变量只可以方问B为型的所有成员,不能访问A类型子类的成员.
例:
B A;
A=new A();
实际变量A的类型变为了A类型
------解决方案--------------------
MSDN是最好的老师,LZ去查查吧~
继承的说明:
http://msdn.microsoft.com/zh-cn/library/ms173149(VS.80).aspx
------解决方案--------------------
继承: 楼主可以理解成是:创建一个类型(这个类型是CLASS)
实例化: 如果不实例化CLASS,CLASS就不能用。
对照下:
int是个类型
要用这个int类型 就要声明变量 否则上面的int 就不能用。 你目前也可以理解成: 实例化就是变量 只不过是称谓上不一样
懂了吗??? 给分 给分 我要分
------解决方案--------------------