The Perfect Day

分享技术,编写未来

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
namespace t1
{
    
public abstract class myClass //不能被实例化
    {
        
public myClass() //总会被调用,否则无法创建带参构造函数
        {
            MessageBox.Show(
"基类的无参构造函数!");
        }
        
public myClass(int a) //要调用myClass(int a) 则必须“显式调用”,即在派生类中写成:public test(int a):base(a)
        {
            MessageBox.Show(
"{基类a!}");
        }
    }

    
public class test : myClass
    {
        
public test()
        {
            MessageBox.Show(
"派生类的无参构造函数!");
        }
        
public test(int a)
        {
            MessageBox.Show(
"{派生类a!}");
        }
    }
}

test t1=new test();
则输出: 基类的无参构造函数!
           派生类的无参构造函数!

test t2=new test(1);
则输出: 基类的无参构造函数!
           派生类a!

若写成如下:显示调用
public test(int a):base(a)
        {
            MessageBox.Show("{派生类a!}");
        }
test t3=new test(1);
则输出: 基类a!
           派生类a!


abstract用来修饰抽象类,表示该类只能作为父类被用于继承,而不能进行对象实例化。


 

posted on 2008-05-26 15:18  StephenJu  阅读(296)  评论(0编辑  收藏  举报