抽象类与抽象函数+接口

2024-08-22 04:44
文章标签 接口 函数 抽象类 抽象

本文主要是介绍抽象类与抽象函数+接口,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

抽象类与抽象函数

什么是抽象方法

抽象方法是没有实现代码的虚方法

抽象方法使用abstract修饰符进行声明,只能在同样声明了abstract的类中使用。

继承了抽象类的子类必须实现抽象类的所有抽象方法。

什么是抽象类

用abstract修饰过的类是抽象类

抽象类无法被实例化

子类如果继承自抽象类,那么子类必须实现abstract类中所有的abstract成员

如果你的父类需要实例化,且需要实现方法,用虚方法。

如果你的父类不需要实例化,也不需要实现方法,用抽象类和抽象方法;

格式实例:

    abstract class Graph{public abstract void GetArea();public abstract void GetPerimeter();}class Rect : Graph{public float width;public float height;public override void GetArea(){Console.WriteLine("此矩形的面积为:"+(width*height));}public override void GetPerimeter(){Console.WriteLine("此矩形的周长为:"+(width+height)*2);}}class Circle : Graph{public float radius;    public override void GetArea(){float area=(float)Math.PI*radius*radius;Console.WriteLine("此圆的面积为:" + area);}public override void GetPerimeter(){float perimeter = (float)Math.PI * radius * 2;Console.WriteLine("此圆的周长为:" + perimeter);}}class Test1{static void Main(string[] args){Circle c = new Circle();c.radius= 10;Rect r= new Rect();r.height = 12;r.width=6;c.GetArea();r.GetArea();c.GetPerimeter();r.GetPerimeter();}}

运行结果为: 

接口 

 接口定义了可由类和结构实现的协定。

接口可以包含方法,属性,事件和索引器

接口不提供所定义的成员的实现代码,仅指定必须由实现接口的类或结果提供的成员,因此接口在声明是不能具体实现,他只能通过及城市了他的类的成员实现。接口是多重继承的,一个接口可以继承另一个接口或者多个接口,一个类可以继承一个或者多个接口。

接口的优势

多继承,可以让类更灵活,并在减少代码重复的情况下降低代码关联性(耦合)

多态:程序可扩展性,节约成本,提高效率。

接口的声明
访问修饰符 interface 接口名{属性方法
}

接口的声明与类基本一致。

接口的方法和属性均允许实现 。

接口不能有构造,不能有字段。

不能重载运算符。

接口中成员必须为Public。

接口取名,前面必须要加大写的I。

接口的使用
访问修饰符 类名:基类,接口名,接口名{属性方法
}

继承关系中如果有类必须是第一个。

继承了接口的类必须实现该接口的所有成员。

接口可以继承接口 。

接口的显示实现

当我们的类继承了多个接口,有可能会有重名的成员,这个时候可以使用显示实现来区别不同接口的成员

接口名.成员名{}

该系列专栏为网课课程笔记,仅用于学习参考。 

这篇关于抽象类与抽象函数+接口的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1095269

相关文章

Python函数作用域与闭包举例深度解析

《Python函数作用域与闭包举例深度解析》Python函数的作用域规则和闭包是编程中的关键概念,它们决定了变量的访问和生命周期,:本文主要介绍Python函数作用域与闭包的相关资料,文中通过代码... 目录1. 基础作用域访问示例1:访问全局变量示例2:访问外层函数变量2. 闭包基础示例3:简单闭包示例4

MySQL中C接口的实现

《MySQL中C接口的实现》本节内容介绍使用C/C++访问数据库,包括对数据库的增删查改操作,主要是学习一些接口的调用,具有一定的参考价值,感兴趣的可以了解一下... 目录准备mysql库使用mysql库编译文件官方API文档对象的创建和关闭链接数据库下达sql指令select语句前言:本节内容介绍使用C/

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

python中的高阶函数示例详解

《python中的高阶函数示例详解》在Python中,高阶函数是指接受函数作为参数或返回函数作为结果的函数,下面:本文主要介绍python中高阶函数的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录1.定义2.map函数3.filter函数4.reduce函数5.sorted函数6.自定义高阶函数

Python中的sort方法、sorted函数与lambda表达式及用法详解

《Python中的sort方法、sorted函数与lambda表达式及用法详解》文章对比了Python中list.sort()与sorted()函数的区别,指出sort()原地排序返回None,sor... 目录1. sort()方法1.1 sort()方法1.2 基本语法和参数A. reverse参数B.

Java抽象类Abstract Class示例代码详解

《Java抽象类AbstractClass示例代码详解》Java中的抽象类(AbstractClass)是面向对象编程中的重要概念,它通过abstract关键字声明,用于定义一组相关类的公共行为和属... 目录一、抽象类的定义1. 语法格式2. 核心特征二、抽象类的核心用途1. 定义公共接口2. 提供默认实

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

Python Excel 通用筛选函数的实现

《PythonExcel通用筛选函数的实现》本文主要介绍了PythonExcel通用筛选函数的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 目录案例目的示例数据假定数据来源是字典优化:通用CSV数据处理函数使用说明使用示例注意事项案例目的第一

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法