这样儿解释吧: a继承于A ,那么a就有A的属性方法(私有,密封等除外),然后a呢,又有自己的属性及方法。 如果要使用A中的实例方法时 就要实例化A 因为a 包含A中所有的属性及方法 所以我们可以把 a 当A来使用 就是 A x=new a()
这样儿解释吧: a继承于A ,那么a就有A的属性方法(私有,密封等除外),然后a呢,又有自己的属性及方法。 如果要使用A中的实例方法时 就要实例化A 因为a 包含A中所有的属性及方法 所以我们可以把 a 当A来使用 就是 A x=new a()
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类型
求解 1: private static A instance; public static A Instance { get { if (instance == null) { instance = new A(); } return instance; } }2: public partial class B: A3: 该如何使用B的实例?
a继承于A ,那么a就有A的属性方法(私有,密封等除外),然后a呢,又有自己的属性及方法。
如果要使用A中的实例方法时 就要实例化A
因为a 包含A中所有的属性及方法 所以我们可以把 a 当A来使用
就是 A x=new a()
a继承于A ,那么a就有A的属性方法(私有,密封等除外),然后a呢,又有自己的属性及方法。
如果要使用A中的实例方法时 就要实例化A
因为a 包含A中所有的属性及方法 所以我们可以把 a 当A来使用
就是 A x=new a()
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类型
这里A 仅仅是个名字。
用什么都一样,就包含了public A 能继承的内容
继承的说明:
http://msdn.microsoft.com/zh-cn/library/ms173149(VS.80).aspx
实例化: 如果不实例化CLASS,CLASS就不能用。
对照下:
int是个类型
要用这个int类型 就要声明变量 否则上面的int 就不能用。 你目前也可以理解成: 实例化就是变量 只不过是称谓上不一样
懂了吗??? 给分 给分 我要分
前边的没有仔细看,这个比较实际。
这是很典型地错误。把财产继承等同于对象(类)继承,这个荒唐概念在死抠字眼的人哪里很普遍。比如说“猫”继承自“动物”,那么0001号猫“就是”0001号动物,同一个对象x,你既可以说它是x猫,也可以说它是x动物。所以继承的结果我们就可以用是否“就是(IS-A)”来衡量。而如果说儿子继承自父亲,那么你就是说儿子就是自己的爸爸,这显然是荒唐的。不能用生活中的“继承”二字的字眼来理解概念,应该根据概念的不同真实意思来审慎地使用字眼。
1:
private static A instance;
public static A Instance
{
get
{
if (instance == null)
{
instance = new A();
}
return instance;
}
}2:
public partial class B: A3:
该如何使用B的实例?
类:汽车
宝马:汽车
买汽车:汽车 宝马=new 汽车
用汽车:??? 已经买了一辆车,无需再买了(即只有一个唯一的实例),如何用这辆汽车???