1、多态就是设计模式!!!多态理解了设计模式就理解了。

2、定义坐标类,坐标类默认继承Object的ToString()方法,没有自己的特色。

3、override ToString()输出友好信息:

 public override string ToString(){return string.Format("({0},{1})",X,Y);}

只要用定义了这个方法的变量调用它就可以,不用关心具体的实现类是什么。

4、不管new、隐藏,否则问题更麻烦。重载是面向过程的概念

5、多态就是调用方法的时候不用关心调用的到底是哪个子类的哪个对象。就像通过委托调用方法不用关心调用的到底是哪个函数一样

6、不同语言中类型的名字可能不一样,比如C#中的int在VB.net中是Integer,.net中定义了CTS(Common Type System 公共语言系统)也就是String、Boolean、Int32等通用类型,编译器负责把int翻译成Int32。

CLR(Common Language Runtime 公共语言运行时)

6、猫叫、狗叫的面试题:

List<Pet> list = new List<Pet>();list.Add(new Dog());list.Add(new Dog());list.Add(new Cat());foreach (Pet pet in list){//司令不用管这个宠物具体的类型,因为所有的Pet都是有“叫”方法,调用就会执行各自的叫的方法//if (pet is dog)//{//}//else if (pet is Cat)//{//}pet.叫();}

    class Program{static void Main(string[] args){Cat c1 = new Cat();Dog d1 = new Dog();Mouse m1 = new Mouse();//List<Animal> list = new List<Animal>();//list.Add(c1);//list.Add(d1);//list.Add(m1);//foreach (Animal a in list)//{//    a.叫();//}Animal a = c1;a.叫();//d1.咬(c1);Console.ReadKey();}}//回答面向对象题的策略:先看有几个类//猫叫完了,狗叫,猫咬了一口老鼠,老鼠叫,猫如果咬狗狗也叫。abstract class Animal{public abstract void 叫();public void 咬(Animal an){//不要认为这里an是Animal的对象,这里还是an指向的还是Cat对象//只是用Animal变量指向Cat对象而已。 an.叫();//体现了多态,//就像通过委托调用方法不用关心调用的到底是哪个函数一样//多态就是调用方法的时候不用关心调用的到底是哪个子类的那个对象}}class Cat : Animal{public override void 叫(){Console.WriteLine("喵");} }class Dog : Animal{public override void 叫(){Console.WriteLine("汪");}}class Mouse : Animal{public override void 叫(){Console.WriteLine("唧唧");}}

多态和接口(3)——设计模式(1)——方法override、CLR(Common Language Runtime 公共语言运行时)、CTS(Common Type System 公共语言系统)相关推荐

  1. C#语言使用多态(接口与override) ——帮您剔除对面向对象多态性的疑惑

    多态是面向对象编程中三大机制之一,其原理建立在"从父类继承而来的子类可以转换为其父类"这个规则之上,换句话说,能用父类的地方,就能用该类的子类.当从父类派生了很多子类时,由于每个子 ...

  2. 每天学一点设计模式-工厂方法模式

    工厂方法模式 英文名 Factory Method Pattern 定义 定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法模式让类把实例化推迟到子类去实现. 原则 1.变量不可以持 ...

  3. Java面试接口以及接口调用超时解决方法

    一.概念 是一个抽象类型,是抽象方法的集合(100%的抽象类).接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法.一个接口只有方法的特征没有方法的实现,因此这些方 ...

  4. 【JVM】运行时数据区概述(程序计数器、虚拟机栈、本地方法栈)

    前言 本节主要讲的是运行时数据区,也就是下图这部分,它是在类加载完成后的阶段 当我们通过前面的:类的加载-> 验证 -> 准备 -> 解析 -> 初始化 这几个阶段完成后,就会 ...

  5. 运行时常量区-方法区

    文章目录 1.栈.堆.方法区的交互关系 2.方法区的理解 3.方法区在HotSpot VM中的演变 4.设置方法区大小 5.OOM的排查 6.方法区的内部结构 6.1 类型信息 6.2 类变量 (no ...

  6. 从GC的SuppressFinalize方法带你深刻认识Finalize底层运行机制

    如果你经常看开源项目的源码,你会发现很多Dispose方法中都有这么一句代码: GC.SuppressFinalize(this); ,看过一两次可能无所谓,看多了就来了兴趣,这篇就跟大家聊一聊. 一 ...

  7. day03--java基础编程:面向对象,构造方法,代码块讲解,this super,static,final,访问修饰符,方法重写,向上/下造型,main方法,抽象类,接口,设计模式,异常,内部类

    1 Day06–面向对象1 1.1 面向对象 1.1.1 概念 推荐看的书:Thinking in java 概念:所谓的面向对象是一种编程思想,通过这种思想可以把生活中的复杂事情变得简单化,从原来的 ...

  8. day03--java基础编程:面向对象,构造方法,代码块讲解,this super,static,final,访问修饰符,方法重写,向上_下造型,main方法,抽象类,接口,设计模式,异常,内部类

    1 Day06–面向对象1 1.1 面向对象 1.1.1 概念 推荐看的书:Thinking in java 概念:所谓的面向对象是一种编程思想,通过这种思想可以把生活中的复杂事情变得简单化,从原来的 ...

  9. 多态的实现(重载,虚方法,抽象类,接口)

    1.前言 多态是指,在同一个方法中,由于参数不同而导致执行效果各异.多态的实现方式主要是通过函数.运算符重载,虚成员,以及抽象类实现和接口.下面的内容就详细介绍一下前三种多态的实现形式. 2.方法重载 ...

最新文章

  1. 中国电子学会图形化四级编程题:程序优化
  2. Zookeeper场景实践:(5)分布式通知/协调
  3. 除了Open Day,Nibiru与DigiArtist来CJ 搞事情了
  4. Acwing 1072. 树的最长路径
  5. python微信机器人部署服务器_玩法收藏/云服务器/零基础微信机器人实践( Python )...
  6. 连续汗蒸一星期有什么好处?
  7. IE9预览版已全面支持HTML5标准
  8. NetWare 5.1 Does Not Recognize CD-ROM Drive
  9. Android中的控件
  10. Ext JS4百强应用:设置textfield的悬浮提示信息 --第8强
  11. 谈谈我心目中理想的牛人
  12. 回答工作做好了,可能有三种情形
  13. 使用 openssl 进行 base64 编解码
  14. Python Csv TypeError: a bytes-like object is required, not ‘str‘
  15. pcf8591c语言编程,PCF8591应用程序
  16. 学习CANopen --- [3] NMT报文
  17. 只要1美元!教你给MacBook装上触摸屏
  18. 众驰伟业:实现业财一体化,支撑企业数字化转型
  19. 微型计算机中的pcl是指,PCL中的类
  20. 数学与计算机科学国际研讨会怎么样,数学大咖齐聚杨祠探讨数学与计算机科学前沿问题...

热门文章

  1. 高级会计师 考计算机考试,2018年高级会计师考试机考操作“秘籍”
  2. OSChina 除夕乱弹 —— 陪伴
  3. 大数据算法—大数据算法概述
  4. 微信小程序的居家养老服务系统app
  5. 西浦计算机系怎么样,西交利物浦大学
  6. 2019上半年总结和下半年的目标
  7. android老人rom,联络OS老人ROM为父母重新定义手机
  8. 飞机大战java_java版飞机大战 实战项目详细步骤.md
  9. 【AI生产力工具】ChatPDF:将 PDF 文档转化为交互式阅读体验的利器
  10. vue @click 多次触发解决