覆盖虚接口

转载 2007年09月13日 11:33:00
覆盖虚接口

 


  有时候我们需要表达一种抽象的东西,它是一些东西的概括,但我们又不能真正的看到它成为一个实体在我们眼前出现,为此面向对象的编程语言便有了抽象类的概念。C#作为一个面向对象的语言,必然也会引入抽象类这一概念。接口和抽象类使您可以创建组件交互的定义。通过接口,可以指定组件必须实现的方法,但不实际指定如何实现方法。抽象类使您可以创建行为的定义,同时提供用于继承类的一些公共实现。对于在组件中实现多态行为,接口和抽象类都是很有用的工具。


  一个抽象类必须为类的基本类列表中列出的接口的所有成员提供实现程序。但是,一个抽象类被允许把接口方法映射到抽象方法中。例如



interface IMethods {
 void F();
 void G();
}
abstract class C: IMethods
{
 public abstract void F();
 public abstract void G();
}


  这里, IMethods 的实现函数把F和G映射到抽象方法中,它们必须在从C派生的非抽象类中被覆盖。
注意显式接口成员实现函数不能是抽象的,但是显式接口成员实现函数当然可以调用抽象方法。例如



interface IMethods
{
 void F();
 void G();
}
abstract class C: IMethods
{
 void IMethods.F() { FF(); }
 void IMethods.G() { GG(); }
 protected abstract void FF();
 protected abstract void GG();
}


  这里,从C派生的非抽象类要覆盖FF 和 GG, 因此提供了IMethods的实际实现程序。

 

相关文章推荐

【07】面对对象3_继承,super,函数覆盖,子类实例化,final,抽象,接口

继承 -------------------------------------------------------------------------------------------------...

继承与接口---覆盖、虚继承

一、关于覆盖:(1)成员函数的覆盖:子类对父类的成员函数覆盖,必须函数名称一致,参数一 致,返回值一致(当然编译器决定);!!!!!(2)成员变量的覆盖:子类覆盖的仅仅是继承来的那个成员变量,而并不改...

覆盖抽象类及接口

覆盖抽象类及接口 override可以翻译为覆盖,从字面就可以知道,它是覆盖了一个方法并且对其重写,以求达到不同的作用。对我们来说最熟悉的覆盖就是对接口方法的实现,在接口中一般只是对方法进行了声明,...

黑马程序员4. 继承&覆盖&final&抽象&模板方法模式&接口

今天学习了毕老师java基础第7天的内容,在这里总结一下。 1.继承

Java编程之TreeSet排序两种解决方法(1)元素自身具备比较功能,元素需要实现Comparable接口覆盖compare(2)创建根据自定义Person类的name进行排序的Comparator

TreeSet还具有可以对集合中的元素进行指定顺序的排序的功能。 这个功能实现的基本原理就是,当存放元素的时候进行比较,比较之后再存入。对于普通的字符串它可以完美的实现排序功能,但当是自定义类的时候就...

java对象通用方法之覆盖equals时请遵守通用约定、覆盖equals时总要覆盖hashCode、始终要覆盖toString、考虑实现Comparable接口

原文地址: http://www.cnblogs.com/stephen-liu74/archive/2012/01/16/2228360.html 内容摘要: 覆盖equals时请遵守...

C#中 类 和 接口 虚方法 和 抽象方法 及 值类型 和 引用类型 的区别

C#中 类 和 接口 虚方法 和 抽象方法 及 值类型 和 引用类型 的区别 1.C#类和接口的区别 接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念! 而类是负...

c# 中的抽象类、接口、密封类、虚方法介绍

1、抽象类 如果一个类没有具体的实现,只表现一种抽象概念,并且仅仅只作为自己派生类的一个基类出现,那么这样的类称作抽象类。抽象类中由abstract修饰的方法称之为抽象方法。 (1)抽象类声明和特...

接口,抽象类,虚方法,重写(interface,abstract class,virtual function,override)

1.抽象类和虚方法的区别(abstract,virtual function) 看到抽象和虚这两词真的觉得有点抽象,有点犯迷糊.其实这两者还是很容易区分的. 1.abstract可以修饰class...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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