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

abstract关键字详解

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

Java关键字final、static、abstract使用总结

一、final 根据程序上下文环境,Java关键字final有“无法改变”或者“终态”的含义,它可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,没有子类,final类中的方法默认...
  • u013842976
  • u013842976
  • 2016年05月10日 13:48
  • 1369

Java关键字之abstract(抽象类的概念和使用)

1、概述 (1)只给出方法定义而不具体实现的方法被称为抽象方法,抽象方法是没有方法体的,在代码的表达上就是没有“{}”。使用 abstract 修饰符来表示抽象方法和抽象类。 (2)abstrac...
  • eff666
  • eff666
  • 2016年08月26日 08:59
  • 4652

Java之抽象类(abstract关键字)

abstract关键字: 1)用abstract关键字修饰一个类时,这个类叫做抽象类;用abstract关键字修饰一个方法时,这个方法叫关键方法; 2)含有抽象方法的类必须被声明为抽象类,抽象类必...
  • Jarvenman
  • Jarvenman
  • 2017年01月20日 13:31
  • 872

简述static,final,abstract三者的使用场景与注意事项

简述static,final,abstract三者的使用场景与注意事项
  • qq_21806621
  • qq_21806621
  • 2017年03月14日 22:14
  • 1190

在Java中,关于abstract关键字

关键字abstract 可以用来修饰类或方法,其所修饰的类或方法被称之为抽象类或抽象方法; 抽象类   概念:包含抽象方法的类一定为抽象类。抽象类不一定包含抽象方法。   注意:不能ne...
  • u010661782
  • u010661782
  • 2015年10月10日 10:57
  • 224

Abstract关键字

abstract 关键字可以修饰类或方法。 abstract 类可以扩展(增加子类),但不能直接实例化。 abstract 方法不在声明它的类中实现,但必须在某个子类中重写。 示例   pub...
  • gaoxiangnumber1
  • gaoxiangnumber1
  • 2015年02月09日 23:50
  • 233

abstract关键字

abstract(C# 参考) abstract 修饰符指示所修饰的内容缺少实现或未完全实现。 abstract 修饰符可用于类、方法、属性、索引器和事件。 在类声明中使用 abstra...
  • qq_30037287
  • qq_30037287
  • 2016年11月25日 14:58
  • 59

Java接口与抽象类的区别

Java将接口与概念提升为独立的结构,体现了接口与实现的分离。Java接口允许多个类提供相同的功能,也允许一个类同时实现多个接口。一、Java抽象类和接口1、抽象类抽象类是普通的类和接口之间的一种中庸...
  • Lxd_0111
  • Lxd_0111
  • 2017年05月31日 21:43
  • 64

抽象类(abstract class)和接口(Interface)的区别

前言 抽象类(abstract class)和接口(Interface)是Java语言中对于抽象类定义进行支持的两种机制,赋予了Java强大的面向对象能力。二者具有很大的相似性,甚至可以相互替换,因...
  • aptentity
  • aptentity
  • 2017年04月01日 11:53
  • 1199
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:abstract关键字
举报原因:
原因补充:

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