c#继承(抽象类、接口)

简介: c#继承(抽象类、接口) new 覆盖基类中的同名成员。 override 重写virtual和abstract函数。 abstract 为了定义三角形、矩形类,可以先定义图形类,再在图形类的基础上派生出具体类。图形类不能被实例化,因此可以定义为抽象类。 抽象类——abstract修饰。无法实例化。 抽象方法——abstract修饰。只能在抽象类中出现。只声

c#继承(抽象类、接口)

new

覆盖基类中的同名成员。

override

重写virtual和abstract函数。

abstract

为了定义三角形、矩形类,可以先定义图形类,再在图形类的基础上派生出具体类。图形类不能被实例化,因此可以定义为抽象类。
抽象类——abstract修饰。无法实例化。
抽象方法——abstract修饰。只能在抽象类中出现。只声明不定义。派生类必须使用override关键字重写抽象类的所有方法。

interface

接口是一种约定,是一种继承方式。接口中只声明函数,不给出定义。若一个类继承了该接口,就一定要给出接口中所有声明函数的定义。


特性。
接口不能被实例化。接口可以多继承。
接口中只能声明不能定义。
如果基类继承了接口,那么派生类都将继承该接口的实现。
建议接口名字以大写的I字母开头。
若多继承时导致接口成员的二义性,解决方案为:强制类型转换。


辨析

new用于普通函数的重写。
override用于virtual和abstract函数的重写。
虚函数是动态绑定的基础。
目录
相关文章
|
7月前
|
IDE C# 开发工具
C#系列之接口介绍
C#系列之接口介绍
|
2月前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
116 65
|
2月前
|
C#
C# 接口(Interface)
接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分。 接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。 接口使得实现接口的类或结构在形式上保持一致。 抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。 接口本身并不实现任何功能,它只是和声明实现该接口的对象订立一个必须实现哪些行为的契约。 抽象类不能直接实例化,但允许派生出具体的,具有实际功能的类。
49 9
|
3月前
|
安全 C#
C# 面向对象编程的三大支柱:封装、继承与多态
【9月更文挑战第17天】在C#中,面向对象编程的三大支柱——封装、继承与多态,对于编写安全、可维护、可复用的代码至关重要。封装通过访问修饰符和属性保护数据;继承允许子类继承父类的属性和方法,实现代码复用和多态;多态则提高了代码的灵活性和通用性。掌握这三大概念能显著提升C#编程能力,优化开发效率和代码质量。
|
3月前
|
C# 索引
C# 一分钟浅谈:接口与抽象类的区别及使用
【9月更文挑战第2天】本文详细对比了面向对象编程中接口与抽象类的概念及区别。接口定义了行为规范,强制实现类提供具体实现;抽象类则既能定义抽象方法也能提供具体实现。文章通过具体示例介绍了如何使用接口和抽象类,并探讨了其实现方式、继承限制及实例化差异。最后总结了选择接口或抽象类应基于具体设计需求。掌握这两者有助于编写高质量的面向对象程序。
123 5
|
3月前
|
存储 C#
C# 一分钟浅谈:继承与多态性的实践
【9月更文挑战第2天】本文从基础入手,详细介绍了面向对象编程中继承与多态性的核心概念。通过 `Animal`、`Dog` 和 `Cat` 类的示例代码,展示了如何利用继承重用代码及多态性实现不同对象对同一方法的多样化响应,帮助读者更好地理解和应用这两个重要概念,提升面向对象编程能力。
44 3
|
4月前
|
C#
C#中的类和继承
C#中的类和继承
44 6
|
4月前
|
API C# 数据库
SemanticKernel/C#:实现接口,接入本地嵌入模型
SemanticKernel/C#:实现接口,接入本地嵌入模型
87 1
|
4月前
|
C#
C# 面向对象编程(三)——接口/枚举类型/泛型
C# 面向对象编程(三)——接口/枚举类型/泛型
36 0
|
4月前
|
C# 索引
C# 面向对象编程(二)——继承
C# 面向对象编程(二)——继承
40 0