abstract修饰符的含义

abstract修饰符可以用于类、方法、属性、事件和索引指示器(indexer),表示其为抽象成员

abstract不可以和 static 、virtual 一起使用

声明为 abstract 成员可以不包括实现代码,但只要类中还有未实现的抽象成员(即抽象类),那么它的对象就不能被实例化,通常用于强制继承类必须实现某一成员

示例:

using System;
using System.Collections.Generic;
using System.Text;
namespace Example04
{
  #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 DeriveClass : 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 Program
  {
    static void OnFunction(object sender, EventArgs e)
    {
      for (int i = 0; i < ((DeriveClass)sender).Attribute.Length; i++)
      {
        Console.WriteLine(((DeriveClass)sender)[i]);
      }
    }
    static void Main(string[] args)
    {
      DeriveClass tmpObj = new DeriveClass();
      tmpObj.Attribute = "1234567";
      Console.WriteLine(tmpObj.Attribute);
      //将静态函数OnFunction与tmpObj对象的Event事件进行关联
      tmpObj.Event += new EventHandler(OnFunction);
      tmpObj.Function("7654321");
      Console.ReadLine();
    }
  }
}

结果:

1234567

7

6

5

4

3

2

1

时间: 2024-09-21 21:58:01

abstract修饰符的含义的相关文章

Java修饰符 abstract,static,final 的区别详解_java

static 表示静态,它可以修饰属性,方法和代码块. 1.static修饰属性(类变量),那么这个属性就可以用类名.属性名来访问,也就是使这个属性成为本类的类变量,为本类对象所共有.这个属性就是全类公有.(共有的类变量与对象无关,只和类有关). 类加载的过程,类本身也是保存在文件中(字节码文件保存着类的信息)的,java会通过I/O流把类的文件(字节码文件)读入JVM(java虚拟机),这个过程成为类的加载.JVM(java虚拟机)会通过类路径(CLASSPATH)来找字节码文件. 类变量,会

Java修饰符关键词大全

我成为一个Java程序员距今已有一段时日.最近,有人问我关于Java修饰符关键字的一个问题,但我根本不知道那是什么.所以我觉得除了实际编程和算法,我也有必要学习这些内容. 通过谷歌搜索,我只得到一些琐碎的要点,并不完整.所以我以此主题写了这篇文章.这也是一个可用于测试你的计算机科学知识的面试问题. Java修饰符是你添加到变量.类和方法以改变其含义的关键词.它们可分为两组: 访问控制修饰符 非访问修饰符 让我们先来看看访问控制修饰符,以及如何使用它们的一些代码示例. 修饰符 说明 public

探讨Java语言中那些修饰符_java

一.在java中提供的一些修饰符,这些修饰符可以修饰类.变量和方法,在java中常见的修饰符有:abstract(抽象的).static(静态的).public(公共的).protected(受保护的).private(私有的).synchronized(同步的).native(本地的).transient(暂时的).volatile(易失的).final(不可改变的) 二.修饰顶层类的修饰符包括abstract.public和final,而static.protected和private不能修

内部类-java方法参数的修饰符问题

问题描述 java方法参数的修饰符问题 java在写方法时,为什么有的方法参数用final修饰? 还有就是内部类存在的意义是什么? 也就是说方法中的内部类和类中的内部类各有什么应用场景(请有实战经验的大神各自举个例子)? //问题补充(关于方法中的内部类) 我的意思是: pubic class TestClass{ public void fun(){ public class Test1{ //........ } } } 解决方案 为了实现一些内容,常常需要这么玩: public void

Java语言的修饰符

类.方法.成员变量和局部变量的可用修饰符 修饰符 类 成员方法 构造方法 成员变量 局部变量 abstract Y Y _ _ _ static _ Y _ Y _ public Y Y Y Y _ protected _ Y Y Y _ private _ Y Y Y _ synchronized _ Y _ _ _ native _ Y _ _ _ transient _ _ _ Y _ volatile _ _ _ Y _ final Y Y _ Y Y 1.访问控制修饰符: Java语言

JAVA 入坑教程 | 章节四 修饰符

Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 例子 public class className { // ... } private boolean myFlag; static final double weeks = 9.5; protected static final int BOXWIDTH = 42; public static void main(String[] arguments) { // 方法体 } 修饰符 当前类 同一包内 子孙类 其他包

Java中的访问修饰符详细解析_java

1.类的修饰符分为:可访问控制符和非访问控制符两种. 可访问控制符是:公共类修饰符 public 非访问控制符有:抽象类修饰符 abstract :最终类修饰符 final 1 )公共类修饰符 public : Java 语言中类的可访问控制符只有一个: public 即公共的.每个 Java 程序的主类都必须是 public 类作为公共工具供其它类和程序使用的应定义为 public 类. 2 )抽象类修饰符 abstract :凡是用 abstract 修饰符修饰的类,被称为抽象类.所谓抽象类

《.NET程序员面试秘笈》----面试题5 描述sealed修饰符的使用

面试题5 描述sealed修饰符的使用 .NET程序员面试秘笈[考点]sealed修饰符的意义,密封类和抽象类的关系,sealed修饰符的用法. [出现频率] [解答] 在ch01目录下新建一个程序文件,并命名为Sealed.cs,编写代码如程序1.6所示. 在命令行下编译Sealed.cs后,执行Sealed程序,其效果如图1.8所示. 从本例代码中可知,密封类一般情况下的使用方法和其他类一样,只是无法被继承.代码中Product类的虚方法display方法被Phone类重写,而被重写的dis

关于Java中各种修饰符与访问修饰符的说明

访问 补充一下JAVA的基础知识(转)关于Java中各种修饰符与访问修饰符的说明 类:访问修饰符  修饰符  class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被所有类访问(使用) public类必须定义在和类名相同的同名文件中 package 可以被同一个包中的类访问(使用) 默认的访问权限,可以省略此关键字,可以定义在和public类的同一个文件中   修饰符 名称 说明 备注 f