abstract关键字

转载 2012年03月22日 21:39:07

abstract关键字

     abstract 修饰符可以用于类、方法、属性、事件和索引指示器(indexer),表示其为抽象成员。它不可以和 static 、virtual 一起使用。声明为 abstract 成员可以不包括实现代码,但只要类中存在未实现的抽象成员,那么它的对象就不能被实例化。abstract通常用来强制继承类必须实现基类的某一抽象成员。

示例:

using System;
using System.Collections.Generic;
using System.Text;

namespace Example
{
    #region 基类,抽象类
    public abstract class BaseClass
    {
        //抽象属性,同时具有get和set访问器。它的初衷是:让继承类必须将该属性实现为可读写
        public abstract String Attribute
        {
            get;
            set;
        }

        //抽象方法,传入一个字符串参数无返回值
        public abstract void Function(String value);

        //抽象事件,类型为系统预定义的代理(delegate):EventHandler
        public abstract event EventHandler Event;

        //抽象索引指示器,只有get访问器。它的初衷是:让继承类必须将该索引指示器实现为只读
        public abstract Char this[int Index]
        {
            get;
        }
    }
    #endregion

    #region 继承类
    public class SubClass : BaseClass
    {
        private String attribute;

        public override String Attribute
        {
            get
            {
                return attribute;
            }
            set
            {
                attribute = value;
            }
        }
        public override void Function(String value)
        {
            attribute = value;
            if (Event != null)
            {
                Event(this, new EventArgs());
            }
        }
        public override event EventHandler Event;
        public override Char this[int Index]
        {
            get
            {
                return attribute[Index];
            }
        }
    }
    #endregion

    class Test
    {
        static void OnFunction(object sender, EventArgs e)
        {
            for (int i = 0; i < ((SubClass)sender).Attribute.Length; i++)
            {
                Console.WriteLine(((SubClass)sender)[i]);
            }
        }
        static void Main(string[] args)
        {
            SubClass subObj = new SubClass();

            subObj.Attribute = "123";
            Console.WriteLine(subObj.Attribute);

            //将静态函数OnFunction与subObj对象的Event事件进行关联
            subObj.Event += new EventHandler(OnFunction);

            subObj.Function("321");

            Console.ReadLine();
        }
    }
}

结果:
123
3
2
1

相关文章推荐

Java之抽象类(abstract关键字)

abstract关键字: 1)用abstract关键字修饰一个类时,这个类叫做抽象类;用abstract关键字修饰一个方法时,这个方法叫关键方法; 2)含有抽象方法的类必须被声明为抽象类,抽象类必...

abstract关键字详解

Abstract关键字详解 abstract关键字,抽象的,修饰类、方法修饰类: 1)不可被实例化,抽象类只能声明引用,不能创建对象 2)抽象类有构造器 (凡是类都有构造器) 当我们设计...

abstract关键字--Java基础053

/* 抽象类: 目前存在的问题: 1. 动物类的run方法描述的不正确。 2. 没有强制要子类一定要重写run方法。 抽象类的应用场景: 我们在描述一类事物的时候,发现该种事物确实存在着某种...

abstract 关键字---抽象类

abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用abstract修饰符以指示某个类只能是其他类的对象,这个基类被称为抽象类。抽象类本身无法产生实例对象,而且抽象类包含...
  • cl110cl
  • cl110cl
  • 2014年03月23日 10:55
  • 833

Java面试01--static、abstract等关键字

以下都是这几天面试的常见问题,都是一些基础类型的问题。

JAVA基础再回首(七)——final关键字、抽象类abstract、接口interface、权限修饰符、导包

JAVA基础再回首(七)——final关键字、抽象类abstract、接口interface、权限修饰符、导包 没有到不了的明天。 嬉皮笑脸面对人生的难。 相信自己,不然你什么都做不了...
  • m366917
  • m366917
  • 2016年08月03日 21:04
  • 1675

Java final static abstract关键字介绍

Java final static abstract关键字介绍   一,抽象类:abstract      1,只要有一个或一个以上抽象方法的类,必须用abstract声明为抽象类;  ...
  • wmc_bk
  • wmc_bk
  • 2017年02月27日 15:08
  • 122

对象入门2.继承、动态绑定 abstract interface关键字

继承,关键字 extends 原始类(正式名称叫作基础类、超类或父类)发生了变化,修改过的“克隆”类(正式名称叫作继承类或者子类)也会反映出这种变化。 子类有两种用法:等价与类似 通常认为基础类...

abstract关键字

abstract抽象的意思。想一个银行的账户系统(定期账户和活期账户)。对于定期活期账户来说,它们都有不同的利息计算方式。我们如何来实现呢? 一种解决的方式是:写一个账户类,写两个子类,一个定期账户...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:abstract关键字
举报原因:
原因补充:

(最多只允许输入30个字)