【C#】 接口 继承

news2024/11/13 9:07:30

简介

继承是面向对象编程的核心特性之一,它允许我们创建一个类(称为子类)来继承另一个类(称为基类)的属性和方法。

作用

这样,我们可以重用代码,减少重复,并使我们的代码更加模块化和可维护。

使用

在 C# 中,继承是通过使用 “:” 符号来实现的。子类继承了基类的属性和方法,同时还可以添加新的属性和方法,或者覆盖基类的方法。

示例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp41
{
    //接口(动物)
    interface Animal
    {
        string Name { get; set; }

        void MakeSound();
    }
    // 基类(哺乳动物)
    class Mammal : Animal
    {
        public string Name { get; set; } = "mammalName";
        public string Type { get; set; } = "mammalType";
        public virtual void MakeSound()
        {
            Console.WriteLine("The animal makes a sound");
        }
    }

    // 子类
    class Dog : Mammal
    {
        public string color { get; set; } = "red";
        public override void MakeSound()
        {
            Console.WriteLine("The dog barks");
        }
    }
    class Cat : Mammal
    {
        public override void MakeSound()
        {
            Console.WriteLine("The cat meows");
        }
    }
    internal class Program
    {
        static void Main(string[] args)
        {
            //多态允许我们使用一个基类引用指向不同的子类对象。
            Mammal dog = new Dog();
            Console.WriteLine(dog.Name);
            dog.Name = "dogName";
            Console.WriteLine(dog.Name);
            Console.WriteLine(dog.Type);
            Console.WriteLine(((Dog)dog).color);
            dog.MakeSound();
            Console.ReadKey();
        }
    }
}

结果 

参考文献

C# 继承的详细介绍和使用-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2037780.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无限金币版《废土世界》安卓手机游戏下载,游戏分享

《废土世界》(JunkWorld)是由IRONHIDE游戏工作室开发的一款塔防游戏,它将玩家带入一个荒凉、贫瘠的后末日世界,玩家需要带领一队拾荒者穿越沙漠和放射性沼泽,进行生存战斗。游戏以其战略深度和丰富的塔防元素为特色&am…

RabbitMQ高级特性 - 消息和队列TTL、死信队列

文章目录 消息和队列TTL概述实战开发 死信队列概述实战开发 消息和队列TTL 概述 a)TTL(Time To Live 过期时间),RabbitMQ 可以对消息和队列设置 TTL. 当消息到达存活时间之后,还没有被消费,就会被自动清除…

fmql之Linux移植

先了解以下linux移植的大致流程,以及需要的资料、软件等。 《领航者ZYNQ之嵌入式Linux开发指南_V2.0》第十八章 Linux内核移植 (amobbs.com 阿莫电子技术论坛) 前言 复旦微(他人经验) 复旦微fmql的操作指南来了: 复旦微 FMQL L…

算法:排序(前言)

所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。一个优秀的…

还在担心Android功能不会用吗?Intro Showcase View助你快速实现功能引导

还在担心Android功能不会用吗?Intro Showcase View助你快速实现功能引导 1. 引言 在现代应用开发中,如何有效引导用户快速上手并掌握应用的核心功能,是提升用户体验的重要一环。功能引导不仅帮助用户理解复杂功能,还能提高用户留存率,减少因操作复杂度带来的用户流失。随…

将Excel数据导入到SQL Server数据库

1.找到SQLServer导入导出工具,有32位和64位 2.打开后点击 下一步 3.选择数据源、Excel文件,自动匹配Excel的版本,根据实际情况,勾选首行是否是列名 4.选择目标,如图 5.点击属性,设置要导入的目标数据库…

zookeeper+kafka群集

一 :消息队列 1:什么是消息队列 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。 消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回由消息…

【Datawhale X 魔搭 】AI夏令营第四期大模型方向,Task2:头脑风暴会,巧灵脑筋急转弯(持续更新)

队伍名称:巧灵脑筋急转弯 队伍技术栈:python,LLM,RAG,大模型,nlp,Gradio,Vue,java 队友:知唐(队长),我真的敲不动…

RCE绕过技巧

目录 EVAL长度限制突破技巧 1.使用反引号 2.file_put_contents写入文件 3.php5.6变长参数usort回调后门 命令长度限制突破技巧 1.拼接文件名 无字母数字的webshell命令执行 1.取反码 2.上传临时文件 EVAL长度限制突破技巧 分析代码:首先传递一个param参数&…

优思学院|日本制造的质量真的那么好吗?回顾日本的质量发展

时代不停改变,时移势易,没有事情是永恒的。 事实上,在20世纪40年代,日本产品常被认为是廉价、劣质的制品,并不如大家所想像的那么好。日本的工业领导者意识到了这个问题,决心生产出创新的高质量产品。 一…

Docker 网络代理配置及防火墙设置指南

Docker 网络代理配置及防火墙设置指南 背景 在某些环境中,服务器无法直接访问外网,需要通过网络代理进行连接。虽然我们通常会在 /etc/environment 或 /etc/profile 等系统配置文件中直接配置代理,但 Docker 命令无法使用这些配置。例如&am…

Python | Leetcode Python题解之第332题重新安排行程

题目: 题解: class Solution:def findItinerary(self, tickets: List[List[str]]) -> List[str]:def dfs(curr: str):while vec[curr]:tmp heapq.heappop(vec[curr])dfs(tmp)stack.append(curr)vec collections.defaultdict(list)for depart, arri…

KillWxapkg-自动化反编译微信小程序工具(附安装包)

KillWxapkg是一款纯Golang实现,一个用于自动化反编译微信小程序、小程序安全评估工具工具,小程序安全利器, 可以自动解密,解包,可还原工程目录,支持Hook,小程序修改,支持微信开发者工…

Java 实现 B树(通俗易懂)

目录 一.概念 二.节点定义 三.插入操作 1.查找位置 2.插入 3.分裂 四.B树和B*树 1.B树 2.B*树 一.概念 B树是一颗多叉平衡树,空树也是多叉平衡树。 一颗M阶的B树要满足以下条件: 1.根节点至少有两个孩子; 2.每个非根节点至少有(上…

iPhone微信过期图片怎么恢复?4招轻松搞定

微信作为最受欢迎的即时通讯工具之一,经常用来分享生活中的点点滴滴。然而,由于手机存储空间的限制或是误触删除,我们有时会发现那些曾在微信中热聊的照片不见了,给我们的记忆留下了空白。别担心,小编为大家提供了多种…

Java | Leetcode Java题解之第331题验证二叉树的前序序列化

题目&#xff1a; 题解&#xff1a; class Solution {public boolean isValidSerialization(String preorder) {int n preorder.length();int i 0;int slots 1;while (i < n) {if (slots 0) {return false;}if (preorder.charAt(i) ,) {i;} else if (preorder.charAt(…

玩AI第一步——显卡环境配置安装

目录 显卡驱动安装 CUDA环境安装 显卡驱动安装 玩ai&#xff0c;首先第一步是需要安装好显卡驱动 如果是n卡&#xff0c;则需要从官网下载对应的驱动&#xff0c;可点击下方链接去搜索自己显卡对应的驱动。 如果不知道自己是什么显卡&#xff0c;可以下载鲁大师或者驱动精灵…

线程池概述

1.1 线程池概念 在处理大量并发任务的时候&#xff0c;如果按照传统的方式&#xff0c;来一个任务请求&#xff0c;创建一个线程来进行任务的处理&#xff0c;大量线程的创建和销毁&#xff0c;将消耗过多的系统资源&#xff0c;还增加了线程上下文&#xff08;运行环境&#x…

Unity 编写自己的aar库,接收Android广播(broadcastReceiver)并传递到Unity

编写本文是因为找了很多文章&#xff0c;都比较片段&#xff0c;不容易理解&#xff0c;对于Android新手来说理解起来不友好。我这里写了一个针对比较小白的文章&#xff0c;希望有所帮助。 Android端 首先还是先来写Android端&#xff0c;我们新建一个Android空项目&#xf…

AI智能网关 边缘计算 视觉AI

随着人工智能技术的不断发展&#xff0c;AI智能网关正成为连接现实世界和虚拟智能世界的重要桥梁。作为智能化时代的关键设备&#xff0c;AI智能网关在物联网、工业、市政、无人驾驶、农业、环保、水利等领域起到了至关重要的作用。   首先&#xff0c;AI智能网关是物联网的核…