C#学习日记22—多重继承

   继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类来定义一个类,一个类从另一个类派生出来时,派生类从基类那里继承特性

         继承的思想实现了 属于(IS-A) 关系。例如,哺乳动物 属于(IS-A) 动物,狗属于(IS-A) 哺乳动物,因此狗 属于(IS-A) 动物。

基类与派生类:

    C#中派生类从他的直接基类继承成员,方法、属性、域、事件、索引指示器但是除开构造函数与析构函数。

 下面写个实例。 

using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;    namespace Test  {      class Anlimal  //定义一个基类      {          protected int foot = 4;          protected double weight = 22.4;          protected void say(string type, string call)          {              Console.WriteLine("类别:{0},叫声:{1} ",type,call);          }      }         //Dog 继承Anlimal       class Dog:Anlimal      {          static void Main(string[] args)          {              Dog dog = new Dog();              int foot = dog.foot;              double weight = dog.weight;              Console.WriteLine("dog foot: {0}ndog weight:{1}",foot,weight);              dog.say("狗", "汪汪");          }      }  }

结果

653.png

多重继承

         C# 不支持多重继承。但是,您可以使用接口来实现多重继承,上面的例子我们为他添加一个smallanlimal接口

using System;  using System.Collections.Generic;  using System.Linq;  using System.Text;    namespace Test  {      class Anlimal  //定义一个基类      {          protected int foot = 4;          protected double weight = 22.4;          protected void say(string type, string call)          {              Console.WriteLine("类别:{0},叫声:{1} ",type,call);          }      }        public interface smallanlimal  //添加一个接口 接口只声明方法在子类中实现      {          protected void hight(double hight);               }      //Dog 继承Anlimal       class Dog:Anlimal,smallanlimal      {          public void hight(double hight)  //实现接口          {              Console.WriteLine("Hight: {0}",hight);          }          static void Main(string[] args)          {              Dog dog = new Dog();              int foot = dog.foot;              double weight = dog.weight;              dog.hight(23.23);              Console.WriteLine("dog foot: {0}ndog weight:{1}",foot,weight);              dog.say("狗", "汪汪");          }      }  }

以上就是 C#学习日记22—多重继承的内容,更多相关内容请关注PHP中文网(www.php.cn)!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1432014.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 06:03:30
下一篇 2025年12月11日 03:48:22

相关推荐

  • C#学习日记23—多态性 之 运算符重载、方法重载、抽象类、虚方法

         在c#中多态性的定义是:同一操作作用于不同类的实例,不同的类进行不同的解释,最后产生不同的执行结果。换句话说也就是 一个接口,多个功能。 C# 支持2种形式的多态性: 编译时的多态性、运行时的多态性 编译时的多态性:    编译时的多态性是通过重载来实现的 方法重载    您可以在同一个范…

    2025年12月17日
    000
  • C#学习日记24—-事件(event)

      事件为类和类的实例提供了向外界发送通知的能力,实现了对象与对象之间的通信,如果定义了一个事件成员,表示该类型具有 1.能够在事件中注册方法 (+=操作符实现)。 2.能够在事件中注销方法(-=操作符实现)。 3.当事件被触发时注册的方法会被通知(事件内部维护了一个注册方法列表)。委托(deleg…

    2025年12月17日
    000
  • C#学习日记21—-封装 与 访问修饰符

    封装:        被定义为”把一个或多个项目封闭在一个物理的或者逻辑的包中”。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。也就是把里面实现的细节包起来,这样很复杂的逻辑经过包装之后给别人使用就很方便,别人不需要了解里面是如何实现的,只要传入所需要的参数就可…

    2025年12月17日 好文分享
    000
  • C#学习日记26—接口(interface)类型

     接口包含类或结构可以实现的一组相关功能的定义例如,使用接口可以在类中包括来自多个源的行为。由于c#语言不支持多重继承,但是可以通过接口来实现多重继承  。简言之,接口只包含了成员(属性、事件、索引器)的声明。成员的定义具体怎么实现由他的派生类决定。   声明一个接口:     接口使用interf…

    2025年12月17日
    000
  • C#学习日记14—引用类型 之 object类

         先让我们了解下什么叫object类 Object类:        object类是所有类型的基类,所有类型都是由他派生而来,C#中所有的类都是直接或间接的从Sytem.Object类中继承,(可能有点迷糊,没关系,举个例子,如果Object类是树干,我们前面所学的所有类就是 树枝 或者 …

    2025年12月17日
    000
  • C#学习日记15—-引用类型 之 string类型用法总结

         c#中定义了一个基本的类string,专门用于对字符串的操作,同样这个类也是在.net框架结构的名字空间system中定义的,是system.string的别名。字符串的用法十分广泛,在类的定义中封装了许多内部的操作,我们只需要简单的利用就可以了。 创建一个string对象:       …

    好文分享 2025年12月17日
    000
  • C#学习日记16—-隐式转换具体用例

       经过前面的学习c#中基本的数据类型就介绍的差不多了,下面就学习下类型之间的互相转换.c# 中类型转换可以分为2类: 隐式转换 和 显式转换. 隐式转换:          隐式转换是系统默认的转换,不需要申明就可以进行转换。在隐式转换过程中,编译器无需对转换进行检查就能够安全的执行转换,比如从…

    2025年12月17日
    000
  • C#学习日记17—显示类型转换具体用例

       在c#的类型转换中,除了上一篇中介绍到的 隐式类型转换 外还有一种需要我们声明的类型转换—–显示类型转换.       显示类型转换,又叫强制类型转换,在进行转换的时候它需要我们明确的指定转换类型.  比如,当我们把long类型转换为int类型时,由于这种转换是丢失精度…

    2025年12月17日
    000
  • C#学习日记18—-装箱(boxing)转换与拆箱(unboxing)转换

      经过前面的学习,我们基本能够实现值类型与值类型之间的转换,引用类型与引用类型之间的转换,但是值类型与引用类型(object)之间的转换又该怎么实现呢??    在C# 中,我们采用装箱来实现将值类型转换成引用类型,用拆箱实现将引用类型转换成值类型;换句话说,它可以实现从任何值类型、引用类型到Ob…

    2025年12月17日
    000
  • C#学习日记19—-引用类型 之 委托(Delegate) 类型

        对于代表(委托也是它)delegate类型的意义,前面 引用类型前言 (点击查看)  中已经介绍过了,这里就不再罗嗦了,简言之,委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,说白了就是可以把方法当作参数传递。所有的委托(delegate)都派生自system…

    2025年12月17日
    000
  • c#学习日记01–新手上路

       对于c#(sharp)说实话我也是刚开始自学,大二了我的主修其实是java,但是c#我也不会落下,从今天开始踏上自学c#之路! 一:认识C#与.NET        .NET/dotnet:一般指.Net Framework框架。是一种平台,一种技术。        C#:一种编程语言,它可以…

    好文分享 2025年12月17日
    000
  • C#学习日记02–输入与输出

           经过上篇的学习,已经对C#有了一个初步的认识,能够在vs2010中创建控制台应用程序,记得我刚开始学习C的时候老师也是这样教我们的,接下来就学习C#的输入与输出。       C#的输入与输出其实是引用System定义好的Console.类型,             输入:  Con…

    好文分享 2025年12月17日
    000
  • C#学习日记03—数据类型

    c#数据类型     C#语言是一种强类型的语言,在程序中用到的变量、表达式、数值等都必须要有类型。对于程序中每一个用于保存信息的量,使用时我们都必须声明他的数据类型,以便编译器为他分配内存空间。C#的数据类型可以分为两大部分:值类型和引用类型(常用的2个  String 和 Object)。   …

    2025年12月17日 好文分享
    000
  • C#学习日记04—数据类型 之 整数类型

            上一篇中我们初步的了解了一些数据类型,不全面,本着认真求实的精神,我再对数据类型梳理 一下。 值类型之整数类型:   记得以前上C语言 课 的时候老师也曾让我们看过这样的表格要求记下来,当时也没好好看认为记这个没什么用,可当我运行下面的代码的时候就知道老师的良苦用心了: using …

    2025年12月17日
    000
  • C#学习日记05—数据类型 之 布尔类型

    值类型之布尔类型:    布尔类型是用来表示 ‘真’ 和 ‘假’ 这两个概念的,虽然看起来很简单,但实际用法十分广泛.我们知道,计算机是用二进制来表示各种数据的,在它 的内部只有0或者1.布尔类型表示的逻辑变量只有2中,True 或 False.   …

    好文分享 2025年12月17日
    000
  • C#学习日记06—数据类型 之 浮点数类型

    数值类型之浮点数类型:   在我们的日常生活中不仅有整数 ,还存在小数,在C#中小数有2种数据类型来表示  (单精度)float 、(双精度)double。 他们的差别在于取值范围与精度不同,计算机对浮点数的运算速度大大低于对整数的运算速度,对double型的运算速度低于对float的运算速度,如果…

    2025年12月17日
    000
  • C#学习日记07—数据类型 之 decimal类型

    值类型之 十进制类型:    C#专门为我们定义了一种十进制类型(decimal)(以前的C/C++是没有次类型的),主要用于金融或贷币方面的计算。十进制类型是一种高精度、128位数据类型,能保留28或29位有效数字,(double 只有15或16位,上一篇中已经试验过了),虽然它取值的范围要比do…

    好文分享 2025年12月17日
    000
  • C#学习日记08—数据类型 之 字符类型

    数值类型 之 字符类型:      计算机处理的信息中除了数字以外,主要就是字符了,字符包括数字字符、英文字符、表达式符号、等等;C#提供的字符类型按照国际上的公认标准,采用Unicode字符集,一个标准的Unicode字符长度为16位,用它可以表示世界上的很多语言。C# 中给字符变量赋值与C/C+…

    2025年12月17日
    000
  • C#学习日记09—数据类型 之 结构(Struct)类型

    数值类型 之 结构类型(struct类型):      经过对前面简单类型的学习,我们在进行一些常用的数据运算、文字处理,似乎已经够了,但是当我们碰到一些复杂的数据类型时,比如,班级管理系统中要录入每个学生的姓名、年龄、电话号码、地址。如果按照我们前面所学的简单数据类型来处理,每录入一个学生的信息就…

    2025年12月17日
    000
  • C#学习日记10—-番外篇 C语言进制转换

          在 c#学习日记08—字符类型   中我遗留 了一个问题:如何用c写一个进制转换程序。  现在我将这个后遗症给铲除掉: #include int main() { printf(“请输入一个十进制数:”); int a; scanf(“%d”,&a); printf(…

    2025年12月17日
    000

发表回复

登录后才能评论
关注微信