zoukankan      html  css  js  c++  java
  • 初识继承和多态

    什么是继承

    继承是使用已经存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用已存在的类的功能。

    继承是面向对象编程中的一个非常重要的特性。在有继承关系的二个类中,子类不仅具有自己独立有的成员,还具有父类的成员

    继承关系在类图中表示一个箭头,箭头指向的是父类

    base关键字和protected修饰符

    都知道this表示当前实例,通过他可以访问类本身的成员,C#中还有一个关键字base,他表示父类,可以用于访问父类的成员。

    在子类中可以用base调用父类的属性。实际上,还可以用base关键字调用父类的方法及父类的构造函数

    父类中的成员如果用private修饰,他将作为私有成员,其他任何类都无法访问。如果设置为public成员,任何类都可以访问该成员。

    在C#中提供了另一种访问修饰符protected,被这个访问修饰符修饰的成员允许被其子类访问,而不允许其他非子类访问

    public ,private ,protected的区别

     修饰符                  类内部                          子类                     其他类

    public                   可以                             可以                     可以

    protected              可以                             可以                     不可以

    public                   可以                             不可以                   不可以

    可以看出,三种访问修饰符对类成员的访问限制强度:private>protected>public

    子类构造函数

    隐式调用父类构造函数

    is a 的应用

    继承的价值

    体会一下继承的特点

    继承模拟了现实世界的关系,oop中强调一切皆对象,这符合我们面向对象编程的思考方向

    继承实现了代码的重用,合理的使用继承,会使代码更加简洁

    继承使程序结构清晰,子类和父类的层次结构清晰,最终的目的是使子类只关注子类的相关行为和状态,无须关注父类的行为与状态

    解决继承带来的问题

    public virtual string SayHi(){
       //方法体
    }

    像这种使用virtual 关键字修饰的方法,称为虚方法。虚方法有方法体

    语法

    访问修饰符  virtual  返回类   方法名(){
      //方法体

    }

    public  override string SayHi(){
      //方法体
    }

    像这种通过override关键字来修饰的方法,称为方法的重写。虚方法可以被重写

    语法

    访问修饰符  override

      返回类   方法名(){
      //方法体
    }

    什么是多态

    实现多态

    实现方法的重写

    父类中定义SayHi()方法,用virtual关键字定义为虚方法

    在子类中定义子类自己的SayHi(),用override关键字修饰,就实现了对父类SayHi()方法的重写

    定义父类变量,用子类对象初始化父类变量

    多态按字面的意思就是 多种形态,指同一个作用于不同的对象时,可以有不同的解释,产生不同的执行结果

    可以用虚方法实现多态

  • 相关阅读:
    Sprite Kit编程指南(1)-深入Sprite Kit
    无线点菜系统01(需求分析)
    【体系结构】转移预测器性能的定量评价
    数据挖掘的常见方法
    hdu1711
    poj3358数论(欧拉定理)
    爬虫提取非结构化数据
    pyDes 实现 Python 版的 DES 对称加密/解密--转
    python2 'str' object has no attribute 'decode'
    vba传递参数类型错误
  • 原文地址:https://www.cnblogs.com/1234wwww/p/6558442.html
Copyright © 2011-2022 走看看