gpt4 book ai didi

c# - 对象 a = new Dog() 与 Dog a = new Dog() 之间的区别

转载 作者:IT王子 更新时间:2023-10-29 04:15:51 26 4
gpt4 key购买 nike

object a = new Dog();

对比

Dog a = new Dog();

在这两种情况下,a.GetType() 都会给出 Dog。两者都调用相同的构造函数(具有相同的层次结构)。

那你能告诉我这两种说法的区别吗?

最佳答案

两者都创建一个 Dog 对象。只有第二个允许您直接调用 Dog 方法或以其他方式将其视为狗,例如,如果您需要将对象作为 Dog 类型的参数(或 Dog 中的某些内容)传递给方法比简单的 object 更具体的层次结构)。

object obj = new Dog(); 
// can only see members declared on object
var type = obj.GetType(); // can do this
Console.WriteLine(obj.ToString()); // also this
obj.Bark(); // Error! Bark is not a member of System.Object

Dog dog = new Dog();
// can do all of the methods declared for Object
dog.Bark(); // can finally use the method defined for Dog

关于c# - 对象 a = new Dog() 与 Dog a = new Dog() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8556651/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com