zoukankan      html  css  js  c++  java
  • 抽象类,虚方法与普通类的区别

    1.虚方法

    在一个类中,用virtual修饰符标识的方法,叫做虚方法。他被用来在其派生类中重写方法。

    例如,我们可以这样写:

     

     

     

     有人可能会疑惑,为什么要写虚方法,我直接再写个别的方法不就行了吗?

    如果你这样问的话,我就不开心了,说明你面向对象三大特征没有明白,多态是怎么实现的,不就是可以通过使用虚方法实现的吗(也可以重载),不要告诉我你不知道什么是多态啊

    简单解释下,多态:同一行为的不同实现方式。实际上就是同一个类型的实例调用"相同"名称的方法,产生的结果是不同的。比如,有一个动物父类,当中有一个fly()的虚方法表示飞行动作,其子类鸡鸭鹅等继承父类,但鸡鸭鹅的飞行方式,飞的高低等是不一样的,我们可以在这些子类中重写fly()这个虚方法,表示自己特有的飞行方式。这就是多态,多种形态。

    2.抽象成员

    1. 在了解抽象类之前,我们先简单了解下抽象成员,(我们必须知道什么是成员,属性,方法这些都是成员)

     抽象成员是被设计用来覆写的函数成员,他被用abstract修饰符标记,没有实现代码块,被用分号代替。(代码块:用一对“{}”括起来的代码)

    例如,在哟个抽象类中,有以下抽象成员:(注意,抽象成员必须在抽象类中)

     

    但如果你不在抽象类中,他会报错提示你的的:

     

    普通类中,我们有以下比较:

     

     

    3.抽象类

    1.用abstract修饰符标识的类,称为抽象类。抽象类就是被设计用来被继承的。  

    抽象类可以包含抽象成员,也可以包含其他普通成员,一个抽象类可以派生出另一个抽象类,也可以派生出另一个普通类,但这个普通类必须实现其父类(抽象基类)的所有抽象成员。

     

     

     

     

     

     

     

    2.从上面的代码中其实你已经可以看到,实现抽象成员的方法就是使用override关键字。

    3.抽象类不能被实例化,我们应该清楚,他就是用来做基类的,他不能像独立的类那样被实例化。

  • 相关阅读:
    Homestead 安装其它的PHP版本
    Angular调用父Scope的函数
    检测到在集成的托管管道模式下不适用的ASP.NET设置
    IE8不能保存cookie,造成response.redirect死循环的原因
    IE浏览器“自定义安全级别”不能设置的原因
    测试sql server服务是否配置正确
    Sql Server Express 2005提示"failed to generate a user instance of sql server "
    cordova使用Gradle构建下载maven太慢,使用阿里云镜像
    使用Cordova编译Android平台程序提示:Could not reserve enough space for 2097152KB object heap
    Angular动态编译Html
  • 原文地址:https://www.cnblogs.com/lvqiang/p/12120105.html
Copyright © 2011-2022 走看看