当前位置: 首页 > 面试题库 >

C# 抽象类abstract class与接口interface的异同

游勇军
2023-03-14
本文向大家介绍C# 抽象类abstract class与接口interface的异同相关面试题,主要包含被问及C# 抽象类abstract class与接口interface的异同时的应答技巧和注意事项,需要的朋友参考一下

相同点:

(1)都可以被继承

(2)都不能被实例化

(3)都可以包含方法的声明

不同点:

(1)抽象类被子类继承;接口被类实现

(2)抽象类只能被单个类继承;接口可继承接口,并可多继承接口

(3)抽象基类可以定义字段、属性、方法实现;接口只能定义属性、索引器、事件、和方法声明,不能包含字段

(4)抽象类可以做方法声明,也可做方法实现;接口只能做方法声明

(5)具体派生类必须覆盖(override)抽象基类的抽象方法;派生类必须实现接口的所有方法

(6)抽象类是一个不完整的类,需要进一步细化;接口是一个行为规范

(7)抽象类中的虚方法或抽象方法必须用public修饰;接口中的所有成员默认为public,不能有private修饰符(也不能用public进行显示修饰)

 

 类似资料:
  • 接口描述了类的行为和功能,而不需要完成类的特定实现。 C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。 如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 "= 0" 来指定的,如下所示:class Box { public: // 纯虚函数 virtual double getVolume() =

  • 我想读关于抽象的文章,但读到不同的文章,我感到很困惑。 下面是我无法理解的问题: 1)“抽象是通过使用抽象类和接口实现的吗?”我对此进行了搜索,得到了三种类型的答案: 与此处解释的不同。 它们是相同的,只是不同的观点,就像这里解释的。 最后一个是抽象类用来实现抽象。 哪一个是真的?请举一个简单的例子。 2)“抽象意味着隐藏不必要的细节。比如专注于一个对象做什么而不是它是如何完成的。” 这是正确的吗

  • 问题内容: 我被问到一个问题,我想在这里让我的答案复习。 问:在哪种情况下,扩展抽象类而不是实现接口更合适? 答:如果我们使用模板方法设计模式。 我对么 ? 很抱歉,如果我不能清楚地说明问题。 我知道抽象类和接口之间的基本区别。 1)在要求如此的情况下使用抽象类,即我们需要为特定操作(实现方法)在每个子类中实现相同的功能,而为某些其他操作(仅方法签名)实现不同的功能 2)如果需要使签名相同(且实现

  • 本文向大家介绍C++ 抽象类和接口的区别?相关面试题,主要包含被问及C++ 抽象类和接口的区别?时的应答技巧和注意事项,需要的朋友参考一下 类型 abstract class Interface 定义 abstract class关键字 Interface关键字 继承 抽象类可以继承一个类和实现多个接口;子类只可以继承一个抽象类 接口只可以继承接口(一个或多个);子类可以实现多个接口 访问修饰符

  • 设计良好的软件系统应该具备“可复用性”和“可扩展性”,能够满足用户需求的不断变更。使用抽象类和接口是实现“可复用性”和“可扩展性”重要的设计手段。 13.1 抽象类 Java语言提供了两种类:一种是具体类;另一种是抽象子类。前面章节接触的类都是具体类。这一节介绍一下抽象类。 13.1.1 抽象类概念 在13.4.1节介绍多态时,使用过几何图形类示例,其中Figure(几何图形)类中有一个onDra

  • 抽象类中可以存在非抽象的方法,接口中的方法被默认的变成抽象方法;   (2)实现抽象类的方法时,如果方法是抽象的,子类必须重写抽象的方法.如果方法不是抽象的,子类可以选择继承,实现了接口就必须实现接口中的所有方法,因为接口中的方法默认的全部都是抽象的方法;