static void Main(string[] args)
{
Animal a = new Cow();
a.Test(); //Cow
Console.ReadLine();
}
public class Animal
{
public virtual void Test()
{
Console.WriteLine("Animal");
}
}
public class Cow:Animal
{
public override void Test()
{
Console.WriteLine("Cow");
}
}
#4
你好!谢谢你的解答。
Animal myCow = new Cow();这一句该怎么去理解呢?我就是这个地方搞不明白,virtual/override以及new覆盖方法,这个我大致已经明白了。
Animal myCow = new Cow();这一句中,我用myCow.Gettype发现myCow的类型是Cow,所以我就很疑惑,前面的Animal是什么意思呢?
总的来说,就是这一句该如何去理解。
Class A = new Class();这一句,如何去理解呢。包括它是如何在内存中分配空间的。
#5
你好!谢谢你的解答。
Animal myCow = new Cow();这一句该怎么去理解呢?我就是这个地方搞不明白,virtual/override以及new覆盖方法,这个我大致已经明白了。
Animal myCow = new Cow();这一句中,我用myCow.Gettype发现myCow的类型是Cow,所以我就很疑惑,前面的Animal是什么意思呢?
总的来说,就是这一句该如何去理解。
Class A = new Class();这一句,如何去理解呢。包括它是如何在内存中分配空间的。
#6
就理解为初始化一个子类。
因为你继承了呀,cow继承自Animal,就可以那样的去声明myCow. new 的那个子类 GetType()自然就返回对应的子类类型。
#7
Animal myCow = new Cow();这一句的意义是什么?
-》如果Animal中增加 新属性或者方法,继承类就可以直接使用,无需自己在定义,比如定义一个Eat方法。
区别在于初始化的对象不一样,这个显而易见,对象不一样,自然包含的属性也可能不一样。
PS:个人观点,欢迎指正。
你好!谢谢你的解答。
Animal myCow = new Cow();这一句该怎么去理解呢?我就是这个地方搞不明白,virtual/override以及new覆盖方法,这个我大致已经明白了。
Animal myCow = new Cow();这一句中,我用myCow.Gettype发现myCow的类型是Cow,所以我就很疑惑,前面的Animal是什么意思呢?
总的来说,就是这一句该如何去理解。
Class A = new Class();这一句,如何去理解呢。包括它是如何在内存中分配空间的。
Animal myCow = new Cow();这一句的意义是什么?
-》如果Animal中增加 新属性或者方法,继承类就可以直接使用,无需自己在定义,比如定义一个Eat方法。
区别在于初始化的对象不一样,这个显而易见,对象不一样,自然包含的属性也可能不一样。
PS:个人观点,欢迎指正。
你好!谢谢你的解答。
Animal myCow = new Cow();这一句该怎么去理解呢?我就是这个地方搞不明白,virtual/override以及new覆盖方法,这个我大致已经明白了。
Animal myCow = new Cow();这一句中,我用myCow.Gettype发现myCow的类型是Cow,所以我就很疑惑,前面的Animal是什么意思呢?
总的来说,就是这一句该如何去理解。
Class A = new Class();这一句,如何去理解呢。包括它是如何在内存中分配空间的。
就理解为初始化一个子类。
因为你继承了呀,cow继承自Animal,就可以那样的去声明myCow. new 的那个子类 GetType()自然就返回对应的子类类型。
请问这个在内存当中是怎么实现和运行的呀?
#9
A a = new B();
等价于
B b = new B();
A a1 = b;
并且由于转换为父类A,所以Test1就被约束没了。
static void Main(string[] args)
{
A a = new B();
a.Test(); //I am B
B b = new B();
A a1 = b;
a1.Test(); //I am B
Console.ReadLine();
}
public class A
{
public virtual void Test()
{
Console.WriteLine("I am A");
}
}
public class B:A
{
public override void Test()
{
Console.WriteLine("I am B");
}
public void Test1()
{
Console.WriteLine("hello");
}
}
#10
Animal myCow = new Cow();这一句的意义是什么?
-》如果Animal中增加 新属性或者方法,继承类就可以直接使用,无需自己在定义,比如定义一个Eat方法。
区别在于初始化的对象不一样,这个显而易见,对象不一样,自然包含的属性也可能不一样。
PS:个人观点,欢迎指正。
你好!谢谢你的解答。
Animal myCow = new Cow();这一句该怎么去理解呢?我就是这个地方搞不明白,virtual/override以及new覆盖方法,这个我大致已经明白了。
Animal myCow = new Cow();这一句中,我用myCow.Gettype发现myCow的类型是Cow,所以我就很疑惑,前面的Animal是什么意思呢?
总的来说,就是这一句该如何去理解。
Class A = new Class();这一句,如何去理解呢。包括它是如何在内存中分配空间的。
就理解为初始化一个子类。
因为你继承了呀,cow继承自Animal,就可以那样的去声明myCow. new 的那个子类 GetType()自然就返回对应的子类类型。
A a = new B();
等价于
B b = new B();
A a1 = b;
并且由于转换为父类A,所以Test1就被约束没了。
static void Main(string[] args)
{
A a = new B();
a.Test(); //I am B
B b = new B();
A a1 = b;
a1.Test(); //I am B
Console.ReadLine();
}
public class A
{
public virtual void Test()
{
Console.WriteLine("I am A");
}
}
public class B:A
{
public override void Test()
{
Console.WriteLine("I am B");
}
public void Test1()
{
Console.WriteLine("hello");
}
}
你好!!!我感觉那个语句我理解一些了!万分感谢。
还有问题就是,Class A = new Class();,这一句,我的理解是,在栈内存中创建一个引用变量A,这个A指向堆内存中的一块区域,堆内存中存放的是一个Class类型的对象。不知我这个理解有没有错误呢?
接下来换到这一句,Animal myCowA = new Cow();我的理解是这样的,在栈内存中创建一个引用变量myCowA,这个myCowA指向堆内存中的一块区域,堆内存中存放的是一个Cow类型的对象。
如果是Cow myCowB = new Cow();那就是这么理解,在栈内存中创建一个引用变量myCowB,这个myCowB指向堆内存中的一块区域,堆内存中存放的是一个Cow类型的对象。
那么问题来了,这两个引用变量myCowA以及myCowB,它在栈内存中是如何生成并分配空间的呢?根据的是前面的Animal和Cow吗?这两个引用变量有什么区别呢?
#12
Animal myCow = new Cow();这一句的意义是什么?
-》如果Animal中增加 新属性或者方法,继承类就可以直接使用,无需自己在定义,比如定义一个Eat方法。
区别在于初始化的对象不一样,这个显而易见,对象不一样,自然包含的属性也可能不一样。
PS:个人观点,欢迎指正。
你好!谢谢你的解答。
Animal myCow = new Cow();这一句该怎么去理解呢?我就是这个地方搞不明白,virtual/override以及new覆盖方法,这个我大致已经明白了。
Animal myCow = new Cow();这一句中,我用myCow.Gettype发现myCow的类型是Cow,所以我就很疑惑,前面的Animal是什么意思呢?
总的来说,就是这一句该如何去理解。
Class A = new Class();这一句,如何去理解呢。包括它是如何在内存中分配空间的。
就理解为初始化一个子类。
因为你继承了呀,cow继承自Animal,就可以那样的去声明myCow. new 的那个子类 GetType()自然就返回对应的子类类型。
static void Main(string[] args)
{
Animal a = new Cow();
a.Test(); //Cow
Console.ReadLine();
}
public class Animal
{
public virtual void Test()
{
Console.WriteLine("Animal");
}
}
public class Cow:Animal
{
public override void Test()
{
Console.WriteLine("Cow");
}
}
#4
Animal myCow = new Cow();这一句的意义是什么?
-》如果Animal中增加 新属性或者方法,继承类就可以直接使用,无需自己在定义,比如定义一个Eat方法。
区别在于初始化的对象不一样,这个显而易见,对象不一样,自然包含的属性也可能不一样。
PS:个人观点,欢迎指正。
你好!谢谢你的解答。
Animal myCow = new Cow();这一句该怎么去理解呢?我就是这个地方搞不明白,virtual/override以及new覆盖方法,这个我大致已经明白了。
Animal myCow = new Cow();这一句中,我用myCow.Gettype发现myCow的类型是Cow,所以我就很疑惑,前面的Animal是什么意思呢?
总的来说,就是这一句该如何去理解。
Class A = new Class();这一句,如何去理解呢。包括它是如何在内存中分配空间的。
static void Main(string[] args)
{
Animal a = new Cow();
a.Test(); //Cow
Console.ReadLine();
}
public class Animal
{
public virtual void Test()
{
Console.WriteLine("Animal");
}
}
public class Cow:Animal
{
public override void Test()
{
Console.WriteLine("Cow");
}
}
你好!谢谢你的解答。
Animal myCow = new Cow();这一句该怎么去理解呢?我就是这个地方搞不明白,virtual/override以及new覆盖方法,这个我大致已经明白了。
Animal myCow = new Cow();这一句中,我用myCow.Gettype发现myCow的类型是Cow,所以我就很疑惑,前面的Animal是什么意思呢?
总的来说,就是这一句该如何去理解。
Class A = new Class();这一句,如何去理解呢。包括它是如何在内存中分配空间的。
#6
Animal myCow = new Cow();这一句的意义是什么?
-》如果Animal中增加 新属性或者方法,继承类就可以直接使用,无需自己在定义,比如定义一个Eat方法。
区别在于初始化的对象不一样,这个显而易见,对象不一样,自然包含的属性也可能不一样。
PS:个人观点,欢迎指正。
你好!谢谢你的解答。
Animal myCow = new Cow();这一句该怎么去理解呢?我就是这个地方搞不明白,virtual/override以及new覆盖方法,这个我大致已经明白了。
Animal myCow = new Cow();这一句中,我用myCow.Gettype发现myCow的类型是Cow,所以我就很疑惑,前面的Animal是什么意思呢?
总的来说,就是这一句该如何去理解。
Class A = new Class();这一句,如何去理解呢。包括它是如何在内存中分配空间的。
就理解为初始化一个子类。
因为你继承了呀,cow继承自Animal,就可以那样的去声明myCow. new 的那个子类 GetType()自然就返回对应的子类类型。
#7
Animal myCow = new Cow();这一句的意义是什么?
-》如果Animal中增加 新属性或者方法,继承类就可以直接使用,无需自己在定义,比如定义一个Eat方法。
区别在于初始化的对象不一样,这个显而易见,对象不一样,自然包含的属性也可能不一样。
PS:个人观点,欢迎指正。
你好!谢谢你的解答。
Animal myCow = new Cow();这一句该怎么去理解呢?我就是这个地方搞不明白,virtual/override以及new覆盖方法,这个我大致已经明白了。
Animal myCow = new Cow();这一句中,我用myCow.Gettype发现myCow的类型是Cow,所以我就很疑惑,前面的Animal是什么意思呢?
总的来说,就是这一句该如何去理解。
Class A = new Class();这一句,如何去理解呢。包括它是如何在内存中分配空间的。
Animal myCow = new Cow();这一句的意义是什么?
-》如果Animal中增加 新属性或者方法,继承类就可以直接使用,无需自己在定义,比如定义一个Eat方法。
区别在于初始化的对象不一样,这个显而易见,对象不一样,自然包含的属性也可能不一样。
PS:个人观点,欢迎指正。
你好!谢谢你的解答。
Animal myCow = new Cow();这一句该怎么去理解呢?我就是这个地方搞不明白,virtual/override以及new覆盖方法,这个我大致已经明白了。
Animal myCow = new Cow();这一句中,我用myCow.Gettype发现myCow的类型是Cow,所以我就很疑惑,前面的Animal是什么意思呢?
总的来说,就是这一句该如何去理解。
Class A = new Class();这一句,如何去理解呢。包括它是如何在内存中分配空间的。
就理解为初始化一个子类。
因为你继承了呀,cow继承自Animal,就可以那样的去声明myCow. new 的那个子类 GetType()自然就返回对应的子类类型。
请问这个在内存当中是怎么实现和运行的呀?
#9
A a = new B();
等价于
B b = new B();
A a1 = b;
并且由于转换为父类A,所以Test1就被约束没了。
static void Main(string[] args)
{
A a = new B();
a.Test(); //I am B
B b = new B();
A a1 = b;
a1.Test(); //I am B
Console.ReadLine();
}
public class A
{
public virtual void Test()
{
Console.WriteLine("I am A");
}
}
public class B:A
{
public override void Test()
{
Console.WriteLine("I am B");
}
public void Test1()
{
Console.WriteLine("hello");
}
}
#10
Animal myCow = new Cow();这一句的意义是什么?
-》如果Animal中增加 新属性或者方法,继承类就可以直接使用,无需自己在定义,比如定义一个Eat方法。
区别在于初始化的对象不一样,这个显而易见,对象不一样,自然包含的属性也可能不一样。
PS:个人观点,欢迎指正。
你好!谢谢你的解答。
Animal myCow = new Cow();这一句该怎么去理解呢?我就是这个地方搞不明白,virtual/override以及new覆盖方法,这个我大致已经明白了。
Animal myCow = new Cow();这一句中,我用myCow.Gettype发现myCow的类型是Cow,所以我就很疑惑,前面的Animal是什么意思呢?
总的来说,就是这一句该如何去理解。
Class A = new Class();这一句,如何去理解呢。包括它是如何在内存中分配空间的。
就理解为初始化一个子类。
因为你继承了呀,cow继承自Animal,就可以那样的去声明myCow. new 的那个子类 GetType()自然就返回对应的子类类型。
A a = new B();
等价于
B b = new B();
A a1 = b;
并且由于转换为父类A,所以Test1就被约束没了。
static void Main(string[] args)
{
A a = new B();
a.Test(); //I am B
B b = new B();
A a1 = b;
a1.Test(); //I am B
Console.ReadLine();
}
public class A
{
public virtual void Test()
{
Console.WriteLine("I am A");
}
}
public class B:A
{
public override void Test()
{
Console.WriteLine("I am B");
}
public void Test1()
{
Console.WriteLine("hello");
}
}
你好!!!我感觉那个语句我理解一些了!万分感谢。
还有问题就是,Class A = new Class();,这一句,我的理解是,在栈内存中创建一个引用变量A,这个A指向堆内存中的一块区域,堆内存中存放的是一个Class类型的对象。不知我这个理解有没有错误呢?
接下来换到这一句,Animal myCowA = new Cow();我的理解是这样的,在栈内存中创建一个引用变量myCowA,这个myCowA指向堆内存中的一块区域,堆内存中存放的是一个Cow类型的对象。
如果是Cow myCowB = new Cow();那就是这么理解,在栈内存中创建一个引用变量myCowB,这个myCowB指向堆内存中的一块区域,堆内存中存放的是一个Cow类型的对象。
那么问题来了,这两个引用变量myCowA以及myCowB,它在栈内存中是如何生成并分配空间的呢?根据的是前面的Animal和Cow吗?这两个引用变量有什么区别呢?
#12
Animal myCow = new Cow();这一句的意义是什么?
-》如果Animal中增加 新属性或者方法,继承类就可以直接使用,无需自己在定义,比如定义一个Eat方法。
区别在于初始化的对象不一样,这个显而易见,对象不一样,自然包含的属性也可能不一样。
PS:个人观点,欢迎指正。
你好!谢谢你的解答。
Animal myCow = new Cow();这一句该怎么去理解呢?我就是这个地方搞不明白,virtual/override以及new覆盖方法,这个我大致已经明白了。
Animal myCow = new Cow();这一句中,我用myCow.Gettype发现myCow的类型是Cow,所以我就很疑惑,前面的Animal是什么意思呢?
总的来说,就是这一句该如何去理解。
Class A = new Class();这一句,如何去理解呢。包括它是如何在内存中分配空间的。
就理解为初始化一个子类。
因为你继承了呀,cow继承自Animal,就可以那样的去声明myCow. new 的那个子类 GetType()自然就返回对应的子类类型。