最近在看《C#入门经典.第5版.(Beginning.Visual.C#.2010)》,刚开始学 C# 不久,技术比较菜。望各位大牛能指点一下。这里先万分感谢了。
我的问题是这样的,按抽象的定义是不能创建对象的,可以为什么书上的 Demo (如下),可以用创建抽象类的数组?而且还不报错。
namespace Ch11Ex01
{
public abstract class Animal
{
protected string name; public string Name
{
…namespace Ch11Ex01
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Create an Array type collection of Animal " +
"objects and use it:"); Animal[] animalArray = new Animal[2]; //为什么这行代码却没有任何错误呢?还能编译通过。
Animal myObj = new Animal(); //编译也无法过,报错
类C#技术
我的问题是这样的,按抽象的定义是不能创建对象的,可以为什么书上的 Demo (如下),可以用创建抽象类的数组?而且还不报错。
namespace Ch11Ex01
{
public abstract class Animal
{
protected string name; public string Name
{
…namespace Ch11Ex01
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Create an Array type collection of Animal " +
"objects and use it:"); Animal[] animalArray = new Animal[2]; //为什么这行代码却没有任何错误呢?还能编译通过。
Animal myObj = new Animal(); //编译也无法过,报错
类C#技术
数组一个新的对象,而不是抽象数组,
如果你用 public abstract CustomCollection:List<T>
{}他是就不可以初始化了。如果是你的 CustomCollection[] coll = new CustomCollection[]{};
因为就不是一个对象。
Animal[]也是一个类,继承与Array,Array继承与Object。这两个类本身一点关系都没有,只有一点联系,就是Animal[]可以放Animal类型的实例。
{
public abstract class Animal
{
protected string name; public string Name
{
…namespace Ch11Ex01
{
class Program
{
static void Main(string[avxrt.com] args)
{
Console.WriteLine("Create an Array type collection of Animal " +
"objects and use it:"); Animal[] animalArray =www.aqirt.com[2]; //为什么这行代码却没有任何错误呢?还能编译通过。
Animal myObj = new Animal(); //编译也无法过,报错