在C#中,abstract关键字可以与类和方法一起使用。抽象方法是那些缺乏任何形式的实现的方法。然而,实现逻辑是由派生自它们的非抽象类获得的。这是通过重写该方法实现的。由于没有实际实现,方法的主体仍然是空的。需要注意的是,抽象方法的声明只能在抽象类中进行。无法初始化的类称为抽象类。从抽象类继承的类必须实现抽象类中声明为抽象的所有方法。
例如-
公共抽象类exampleAbstractClass
{
public abstract void exampleAstractMethod();
公共虚拟void nonAbstractMethod()
{
C***ole.WriteLine(“方法中定义了实现”);
}
类normalNoAbstractClass:ExampleAstractClass
{
public override void exampleAstractMethod()
{
C***ole.WriteLine(“重写ExampleAstractClass类的ExampleAstractMethod”);
}
}
Virtual也是与修改方法、属性、索引器或事件声明相关联的关键字。使用此关键字可以修改派生类中声明的实体。在本例中,派生类重写了基类中声明的虚方法。
阶级基础
{
公共虚空测试()
{
C***ole.WriteLine(“Base.Test”);
}
}
派生类:基
{
公共覆盖无效测试()
{
C***ole.WriteLine(“派生的.Test”);
}
}
虚拟方法用于实现基于类型的多态性。派生类可以灵活地使用override关键字重新实现基类的虚方法。虚修饰符和抽象修饰符不能与静态修饰符、虚修饰符或重写修饰符一起使用。
虚拟法与抽象法的比较:
| 虚方法 | 抽象方法 |
定义 | 虚拟方法用于实现基于类型的多态性。 | 抽象方法是声明但没有任何实现的方法 |
实施 | 是的,可以有实现 | 不,不能有任何实现 |
需要重写 | 非强制性 | 必修课 |
用于将其与其他类型的方法区分开来的关键字 | 事实上的 | 摘要 |
等级 | 可以实例化包含虚拟方法的类。 | 无法实例化包含抽象方法的类。只能继承。 |
范围 | 虚拟方法的作用域仅限于成员。 | 将方法的作用域抽象为成员和类。 |
要执行的方法(对象基类类型) | 只有在具体类中没有提供实现的情况下,才会调用父实现。 | 具体实施 |
要执行的方法(对象具体类类型) | 具体实施 | 具体实施 |
...让我们详细讨论一下两者的理论方面。 什么是抽象类(an abstract class)? 抽象类是一种特殊类型的类,它充当其他类的基,不能实例化。抽象类的实现逻辑由其派生类提供。为了使一个类抽象,使用了“abstract”修饰符,这意味着...
...接口的区别 Java中抽象类和接口的“多重继承”——尽管事实上抽象类和接口都主要用于抽象,但它们彼此有很大的不同。抽象类是类,接口是接口。这意味着虽然一个接口只能扩展另一个Java接口,但一个抽象类可以在Java中实...
...但它并不总是隐藏底层的细节。虚拟机的概念并不新鲜;事实上,自从20世纪60年代IBM开发出第一台提供对大型机交互访问的虚拟机以来,虚拟机就已经存在了。抽象实现了云计算的关键好处,即共享的、无处不在的访问。抽象...
...键术语 数据抽象、封装、面向对象 什么是数据抽象(data abstraction)? 数据抽象是指隐藏内部细节,只显示功能。换句话说,它隐藏了实现细节,只是向外界展示了特性。一个现实世界的例子是电视。用户不需要知道内部电子电...
...键术语 抽象类、接口、多重继承 什么是java中的抽象类(abstract class in java)? 用abstract关键字声明的类称为抽象类。抽象类既可以有抽象方法,也可以有非抽象方法。类可以扩展抽象类并实现抽象类的抽象方法。不能从抽象类创...
...ShapeFactory以获取所需的对象类型。 什么是抽象工厂模式(abstract factory pattern)? 抽象工厂模式使用超级工厂并创建其他工厂。它也被称为工厂的工厂。在这种模式中,接口创建相关对象的工厂,而不显式指定它们的类。换言之,...
...总的来说,数据隐藏有助于保护类的成员。 什么是抽象(abstraction)? 抽象隐藏了内部细节,只向用户显示功能。换句话说,它隐藏了实现细节,并向外界展示了功能。例如,假设一个真实世界的应用程序,例如移动电话。用户不...
...t方法赋值,public get方法获取值。 什么是c语言中的抽象#(abstraction in c#)? 抽象有助于隐藏实现细节,只允许向用户显示功能。假设一台电视机的遥控器。用户不需要知道控制器的内部电路就可以使用它。抽象与此类似。它关注...
虚函数和纯虚函数的主要区别在于虚函数是基类中使用Virtual关键字声明的函数,而纯虚函数是基类中没有函数定义的虚函数。 多态性是面向对象的一个重要概念。它允许一个对象有多种形式。有两种类型的多态性称为早期结合...
... 抽象,抽象类,类,具体类,面向对象 什么是抽象类(abstract class)? OOP中的一个主要概念是抽象。它是一个隐藏内部细节并只向用户显示功能的过程。抽象类是实现抽象的一种方法。Java等编程语言使用抽象关键字来表示抽象类...