日期:2014-05-18  浏览次数:20832 次

c#抽象类内是否要有方法的实现?
 
  abstract class DefaultTokenImp1
  {
  public DefaultTokenImp1(string name)
  {
  this.name=name;

  }
  public string Name()
  {
  return name;
  }
  private string name;
  }
  这样写对吗?如果对的话,和普通类有什么区别呢?

------解决方案--------------------
楼上的搞笑,谁说这样写不行?你自己考到vs2005里运行一下看看,还在冒充专家


抽象类不可以实例化,怎么能有构造函数? 
真是搞笑,自己不能实例化,他的子类还不能实例化? 子类实例化不要调用父类的构造函数?
------解决方案--------------------
支持calfenyin
抽象类与普通的类相比较而言:
1、抽象类本身不能创建实例,但是子类可以,除非没有子类
2、抽象类可以有抽象方法,但是也可以没有
3、抽象类可以有普通的方法,但是也可以没有
------解决方案--------------------
切。。。。。。抽象类不能实例化而已,有哪份资料上写道“不能实现方法”了?
C# code
using System;

public class MyClass
{
    public static void Main()
    {
        //Error
        //A a = new A();
        B b = new B();
        b.Method1();
        b.Method2();
        
        Console.ReadLine();
    }
}

public abstract class A
{
    public A()
    {
        Console.WriteLine("Construct of A");
    }
    
    public void Method1()
    {
        Console.WriteLine("Method1");
    }
    
    public virtual void Method2()
    {
        Console.WriteLine("Method2");
    }
}

public class B:A
{
//    public override void Method2()
//    {
//        Console.WriteLine("Method3");
//    }
}

------解决方案--------------------
抽象类可以拥有构造函数
构造函数被用来建立一个对象实例,但是你不能建立一个抽象类型的实例
抽象类型的构造函数就仅仅能够被它的继承类型使用
------解决方案--------------------
抽象类是不必实现方法,而不是不准实现方法。