抽象类与抽象函数+接口

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 itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr