继承与多态(六)

继承

1.继承

a。.直接在类的后面加上冒号“:”后面跟基类,就该类就继承了基类的一切特性了。

b。private类不能被继承,只有public、protected类能被继承。

c。private类不里面所有的属性和方法都不能被外界访问,只有他自己可以。

d。public类可以被外界访问和继承。

e。protected类可以被继承,外界不能访问,但是子类可以访问。

f。c#不能多重继承,就是说一个类只能继承一个类,不能同时继承多个类。要实现多继承就需要用接口来实现。

g.对于继承来说。不允许派生类的访问性比其基类的更高。也就是说,内部类可以继承于一个公共类,但公共类不能继承一个内部类。

注:1.访问性相同的类,可以相互继承。

2.系统默认的是内部类(interior关键字修饰),所以我们在定义基类时,需要加上public或protected

h.如果指定了基类,它必须紧跟在继承类冒号的后面,之后才是指定的接口。如果没有指定基类,则接口就跟在冒号的后面。

注:如果一个类即实现某个接口又继承某个类,那么所继承的类的类名要写在最前面,接口跟在继承类的后面,如:public class 普通类:基类名,接口1,接口2

不能写成public class 普通类:接口1,基类名,接口2

 

 

2.多态(覆载)

     多态是指两个或多个属于不同类的对象,对同一个消息做出不同的响应的能力。

实现多态时必须在将该方法定义成虚函数,用virtual定义虚函数。在重写虚函数时还要在重写的前面加上override(覆载)来申明一个覆载方法,然后用base关键字来告诉程序方法是基类的方法。

public class person

    {

        private string name;

        private string adress;

        //这里和继承哪里的一样,这里就省了

public virtual void print()//用virtual将print()方法定义为虚方法(虚函数);

        {

3行:     Console.WriteLine("姓名: " + Name + "\n" + "地址" + Adress);

        }

}

public  class Student:person

    {

        private string studentId;//定义一个字段

        //这里是studentId的访问器,此处忽略

      public override void print()//用override来重写一个方法

    // public new void print() //用new来防止隐藏了父类的方法,但注意的是在客户端需要用基类的类名来实例化子类的对象。

        {

2行:       base.print();      //用base关键字来告诉程序这里的print()是基类中的,当前这个print()

4行:       Console.WriteLine("学号" + StudenId+"\n");

        }

}

class Program

    {

        static voidMain(string[] args)

        {

            Student s = new Student();

            s.Name = "报文";

            s.Adress = "云南农业大学";         

  1行:     s.print();//调用自己类中的方法

          /* //用基类名来实例化子类。如果调用了子类中用new方法的话,那么就不会覆盖基类中的方法。

Person  p=new Program();

           p.print();

*/

           Console.Read();

        }

    }

步骤说明:执行到第1行时,当然是先调用自己类中的东西,如果自己类中没有,然后才会到基类中去找的,所以执行第1行后他调用了自己类中的print(),然后执行第2行,第2行调用基类中的print(),调用完后回来继续执行第4行。

说明:基类中有一个print()方法,子类中也有一个print()方法,在基类方法前面加上virtual表示定义了一个虚方法,然后在子类中通过override来覆载基类中的print()方法,这也就是重写了。然后通过base来调用基类中的print()。

注:1.通过这样的方式就可以省去既要调用基类中的方法又要调用自己类中的方法,如果子类中的方法只是想在基类的方法中扩大或缩小或其他一些和基类中的方法有关的操作就不用重新再定义了。

如,基类中的方法是Num(){  return 3 ;} 在子类中的Num(){ return base.Num()*3}

就不在重新写了,直接改变调用基类中的方法来改变。

2.在重写方法或属性的前面加override是覆载基类的方法或属性,如果用new的话,然后在创建对象时用基类来创建子类的对象,那么基类中的方法或属性就不会被覆盖掉。

转载于:https://www.cnblogs.com/green0818/archive/2012/06/06/2538830.html

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

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

相关文章

标记偏见_如何(巧妙地)扭曲视觉效果以支持您的偏见叙事

标记偏见Data is important — it is the logical justification for world-changing decisions. Unfortunately, arrays of numbers don’t tell as interpretable a story as a picture does, providing an insatiable need for data visualizations.数据很重要-这是改变世界…

高瓴投资,顶配创业团队,dora 诚招前端 / Flutter

dora 是一个可以跨越设计稿,直接生成应用的新一代设计工具。让任何 Creator 都能轻松构建个性化的网站和应用,无需编写一行代码。通过自主研发的全新技术,我们为用户打造了完全自由度的设计与开发体验,足以满足任何复杂场景的个性…

猎鹰spacex_SpaceX:简单,美观的界面是未来

猎鹰spacex重点 (Top highlight)A photo has been floating around the internet showing how the interior of the new Dragon spacecraft differs from the Space Shuttle. The difference is staggering, but not entirely suprprising. After all the Shuttle started oper…

object的classid收集

比如&#xff1a; wbbrowser控件 <OBJECT idWB classidCLSID:8856F961-340A-11D0-A96B-00C04FD705A2 VIEWASTEXT></OBJECT> 画图控件 <OBJECT idSGrfxCtl1 classidclsid:369303C2-D7AC-11D0-89D5-00A0C90833E6 ></OBJECT> 上下滚动条控件 <OB…

如何高效学习前端新知识,拓展视野,我推荐

技术日新月异&#xff0c;发展迅速&#xff0c;作为一个与时俱进的互联网人&#xff0c;需要不断地学习扩宽视野。今天为大家推荐几个技术领域中出类拔萃的公众号&#xff0c;它们的每一篇推文都值得你点开&#xff01;1前端开发爱好者学习路线 数据结构算法 前端进阶「前端开发…

开发交接文档_为开发人员创造更好的设计交接体验

开发交接文档It’s 2020. We’re supposed to have flying cars and space travel. We should at least have our process for design handoff nailed down at this point.现在是2020年。我们应该有飞行汽车和太空旅行。 在这一点上&#xff0c;我们至少应该确定我们的设计移交…

同步器之Exchanger

类java.util.concurrent.Exchanger提供了一个同步点&#xff0c;在这个同步点&#xff0c;一对线程可以交换数据。每个线程通过exchange()方法的入口提供数据给他的伙伴线程&#xff0c;并接收他的伙伴线程提供的数据&#xff0c;并返回。 当在运行不对称的活动时很有用&#x…

​Cookie 从入门到进阶:一文彻底弄懂其原理以及应用

大家好&#xff0c;我是若川。持续组织了8个月源码共读活动&#xff0c;感兴趣的可以点此加我微信 ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列Cooki…

ui设计师常用的设计工具_2020年应该使用哪个UI设计工具?

ui设计师常用的设计工具重点 (Top highlight)It’s 2020, the market today is saturated with UI design tools. Ever since Sketch app came out with its sleek, simple, and efficient tool to craft user interface design, many companies have followed suit to take a …

Ajax拖放页面元素(图片)

最近了解了一点YUI的控件知识.先做个Ajax拖放页面元素(图片)以便学习参考. 现在有一些网站如QQ空间,都允许用户自定义模块,可以任意拖动模块到各个地方去.YUI在这一方面做得比较好.下面以一组图片的方式来说明如何运用Ajax拖放页面元素: 第一步:在<head></head>标签…

你不知道的vscode之空间控制

大家好&#xff0c;我是若川。持续组织了8个月源码共读活动&#xff0c;感兴趣的可以点此加我微信 ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列王志远…

正则表达式说明

参考地址&#xff1a; 正则表达式说明 正则表达式全部符号解释转载于:https://www.cnblogs.com/s-bridge/archive/2012/06/26/2564396.html

lynda ux_UX心态

lynda uxI have had the pleasure of training and mentoring several UX people at the beginning of their careers.在职业生涯的初期&#xff0c;我很高兴接受培训和指导。 Whatever your background or experience, I’ve found repeatedly that there are some key miles…

什么 Leader 值得追随?

大家好&#xff0c;我是若川。持续组织了8个月源码共读活动&#xff0c;感兴趣的可以点此加我微信 ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。目前建有江西|湖南|湖北 籍 前端群&#xff0c;想进群的可以加我微信 ruochuan12 进群。历…

pico8 掌机_使用Pico-8构建自己的复古游戏

pico8 掌机An example of the kinds of pixel animations people make in Pico-8.人们在Pico-8中制作的各种像素动画的示例。 Are you a fan of old school video games? What if I told you there’s an NES-style game devkit with the sound/sprite/code tools all built i…

C#中Brush、Color、String相互转换

1、String转换成Color Color color (Color)ColorConverter.ConvertFromString(string); 2、String转换成Brush BrushConverter brushConverter new BrushConverter(); Brush brush (Brush)brushConverter.ConvertFromString(string); 3、Color转换成Brush Brush …

实用 JavaScript 调试技巧

大家好&#xff0c;我是若川。持续组织了8个月源码共读活动&#xff0c;感兴趣的可以点此加我微信 ruochuan12 参与&#xff0c;每周大家一起学习200行左右的源码&#xff0c;共同进步。同时极力推荐订阅我写的《学习源码整体架构系列》 包含20余篇源码文章。历史面试系列。另外…

数据挖掘 点击更多 界面_6(更多)技巧,可快速改善用户界面

数据挖掘 点击更多 界面重点 (Top highlight)Creating beautiful, usable, and efficient UIs takes time, with many design revisions along the way.创建漂亮&#xff0c;可用和高效的UI需要花费时间&#xff0c;并且在此过程中进行了许多设计修订。 Making those constant…

简单的ASP.NET无刷新分页

1、新建一个分页存储过程&#xff1a; CREATE procedure [dbo].[P_Pager] (PageNumber int, PageSize int) as declare sql nvarchar(4000) set sql select top Convert(varchar, PageSize) * from T_Test where [type]1 and id not in (select top Convert(…

Koa在实际的业务场景中,路由如何做分割?【文末留言送书】

大家好&#xff0c;我是若川。文末留言送书&#xff0c;具体规则文末说明。另外为了鼓励大家多写源码共读笔记&#xff0c;我会在写了5次及以上笔记的作者群里也抽奖送这本书。以后也会有更多福利倾斜。导读&#xff1a;Koa是一个Node框架&#xff0c;在Node开源社区中&#xf…