1.
1 public abstract class Birds{ //什么样的方法是抽象方法 public abstract void Fly(); }
     public class YZ:Birds{

      public override void Fly(){

       Console.WriteLine(".........");

  }

 } 

2.来解释抽象方法是怎样的

①如果一个类中用abstract修饰,该类是抽象类

②抽象类中可以有非抽象类方法

③抽象方法不能有方法体,连{}都能有,以分号结束

④如果一个类继承抽象类,必需重写抽象类中的所有抽象方法

⑤抽象方法必须位于抽象类中

⑥抽象类不能是静态类或者是封装类

⑦抽象类不能实例化

3.用虚方法实现多态的基本步骤如下:

①子类重写父类的虚方法,其中有两种方式.

创建父类对象,用子类对象实例化这个父类对象,

把父类类型作为形参类型,它的子类对象作为实参传入

②运行时,根据实际创建对象的类型决定执行哪个方法

4.虚方法和抽象方法的区别

_ ______________________________|___________________________

虚方法                              |                抽象方法

_______________________________ |____________________________

用virtual修饰                       |           用abstract修饰

_______________________________ |______________________________

要有方法体,即使是一个分号           |         不允许有方法体

_______________________________ |______________________________

可以被子类override                   |  必须被子类override

_______________________________ | ________________________________

除了密封类外都可以被定义            |          只有在抽象类中定义

_______________________________ |________________________________

注:使用抽象方法和虚方法都可以实现多态性

5.面向对象编程中三个非常重要的特性---------封装,继承,多态

最后总结:

①封装:保证对象自身数据的完整性和安全性

②继承:建立类之间的关系,实现代码复用,方便系统的扩展

③多态:相同方法的调用可实现不同的实现方式

6.里式替换原则:

子类对象可以代替父类对象;反过来,父类对象不能代替子类对象

更加 "深入" 理解多态的更多相关文章

  1. Java--再次理解多态

    Java中多态性(polymorphism)的实现 什么是多态 1. 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. ...

  2. 多态原理探究-从C++编译器角度理解多态的实现原理

    理论知识: 当类中声明虚函数时,编译器会在类中生成一个虚函数表. 虚函数表是一个存储类成员函数指针的数据结构. 虚函数表是由编译器自动生成与维护的. virtual成员函数会被编译器放入虚函数表中. ...

  3. Java学习之理解多态

    Java 多态 多态是同一个行为具有多个不同表现形式或形态的能力.多态就是同一个接口,使用不同的实例而执行不同操作,多态性是对象多种表现形式的体现.例如:可以把人分为男人和女人,男人有做力气活的能力, ...

  4. C#深入理解多态

    1.里氏替换原则 1.里氏替换原则:在一个软件系统中,如果子类出现在父类出现的位置,而整个软件功能又没有影响,那么咱们称为里氏替换. 2. 考试题:父类变量指向子类对象!! 3.里氏替换  是     ...

  5. 工厂方法模式(Method Factory),理解多态应用的好例子.

    工厂方法模式又称为多态性工厂,个人认为多态性工厂更能准确的表达这个模式的用处.与简单工厂(静态工厂)相比较,这里的多态性是指抽象出一个工厂基类,将因为一个产品有N种不同的是现这种变化封装起来,将具体的 ...

  6. java提高篇之理解java的三大特性——多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  7. java提高篇(四)-----理解java的三大特性之多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  8. 理解 Java 的三大特性之多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  9. 初步理解Java的三大特性——封装、继承和多态

    声明:整理自网络,如有雷同,请联系博主处理 一.封装 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被 ...

随机推荐

  1. Codeforces758C

    C. Unfair Poll time limit per test:1 second memory limit per test:256 megabytes input:standard input ...

  2. POJ3728 LCA RMQ DP

    题意简述:给定一个N个节点的树,1<=N<=50000 每个节点都有一个权值,代表商品在这个节点的价格.商人从某个节点a移动到节点b,且只能购买并出售一次商品,问最多可以产生多大的利润. ...

  3. 解决Ubuntu 16.04 软件中心闪退

    就是上面这个Ubuntu软件中心,类似如应用市场,今天不知怎么回事竟然抽风了,打开之后几秒就闪退了,导致我安装sublime一致失败,百度之后才知道这是16.04版本的一个毛病,按照我的性格,手机软件 ...

  4. jquery mobile多页面跳转等,data-ajax="false" 问题,

    当我们的网站引用了jquery mobile的js后,点击页面的链接,你会发现页面无法跳转,因为jquery mobile默认是采用ajax方式来加载网站的,如果你需要跳到另一个页面,需要在a标签加上 ...

  5. 读书笔记 effective c++ Item 9 绝不要在构造函数或者析构函数中调用虚函数

    关于构造函数的一个违反直觉的行为 我会以重复标题开始:你不应该在构造或者析构的过程中调用虚函数,因为这些调用的结果会和你想的不一样.如果你同时是一个java或者c#程序员,那么请着重注意这个条款,因为 ...

  6. Raid0、Raid1、Raid0+1、Raid3和Raid5 几种磁盘阵列区别

    前两天发现服务器挂了,到机房重启时发现硬盘挂载不上,虽然是开发,但是在交接工作的时候被告知了一点硬件的知识,判断出是硬盘故障.这个呵呵了,修不来只能找服务器售后来换硬盘或是维修了. 关于怎么诊断出硬盘 ...

  7. php批量删除,批量操作

    批量删除多条记录,对于比较多的信息,如果没有批量删除功能是非常麻烦的. 1.从数据库中拿一张表过来,写个复选框进行选择   可以加全选复选框 连接数据库什么的都不写啦 代码: <form act ...

  8. c++ TCP keepalive 使用

    来源:http://blog.csdn.net/weiwangchao_/article/details/7225338 http://www.cnitblog.com/zouzheng/archiv ...

  9. 球谐光照(Spherical Harmonics Lighting)及其应用-应用篇

    上一篇介绍了球谐函数的一些原理和性质,本篇主要介绍如何实现球谐光照,将这种光照应用到实际的场景中去. 我们知道,球谐光照实际上就是将周围的环境光采样成几个系数,然后渲染的时候用这几个系数来对光照进行还 ...

  10. p1144一元三次方程求解

    题目描述: 有形如:f(x)=ax^3+bx^2+cx+d=0这样的一元三次方程,给出该方程中各项的系数a,b,c,d,它们均为实数,并约定该方程一定存在着3个不同的实数解,解的范围在-100至100 ...