zoukankan      html  css  js  c++  java
  • 理解oo:继承、多态、重写、重载、接口、抽象类

    1. 继承:

    从多个子类中抽象出实例变量以及方法,形成更抽象的父类,避免在子类中的代码重复,维护起来更加方便。检查是否可以使用继承技术的方法是:IS A

    对于类A继承自类B,类C继承自类A,那么类C和类A之间也应该满足 IS A 准则。

    IS A是单向关系。

    “是一个”和“有一个”:

    小汽车是一个汽车,那么小汽车这个类可以抽象出汽车类,或者说小汽车继承自汽车类。

    浴缸是一个浴室吗?不对!浴缸和浴室的关系应该是:浴室中有一个浴缸!have a的关系,那么浴缸应该是浴室类的一个实例变量。

    2. 多态:

    oo中,声明一个父类的引用:如 Animal a = new Animal(); 多态的实际效果就是。a = new Dog() (Dog Extend Animal)。即 一个父类的引用可以指向一个子类对象。

    实际的意义就是:public Animal returnAnimal(Animal a){}  在这个方法中,可以返回一个Animal对象,可以传入一个animal对象,也可以传入和返回任何一个Extend Animal的子类对象。

    3. 重写(override):

    重写就是要求方法签名完全一样,这样才会覆盖掉父类中的同名方法。方法签名:修饰符 返回类型 方法名(参数列表)

    4. 重载(overload):

    重载要求的是参数列表一定要不一样。即子类中可以增加一个和父类中完全一样的方法,但是方法签名不一样,当子类对象调用方法时,根据参数列表来判断应该调用父类中的方法还是子类中的方法。

    5. 接口:

    继承只是个开始,要使用多态,我们还需要接口。Interface 是一种100%纯抽象的类。

    6. 抽象类:

    Animal的对象会是一个什么动物?所有有些类根本就不应该被初始化!抽象类不能初始化!但是可以用抽象类型作为一个引用类型。这也是为何当初要有抽象类型的目的。修饰符:abstract。抽象类是除了被继承之外没有其他用途,没有值,没有目的的类。它可以带有抽象和非抽象的方法。

    抽象方法:抽象的方法代表此方法一定要被覆盖过(重写)。抽象的方法没有实体(代码块)。抽象方法只存在抽象类中。如果含有抽象方法,那么该类也是抽象类。

  • 相关阅读:
    poj3083(Children of the Candy Corn)
    poj3278(Catch That Cow)
    poj2996(Help Me with the Game)
    poj2993(Emag eht htiw Em Pleh)
    js 对多sheet Excel赋值操作
    学习进度总结(三)
    学习进度总结(二)
    学习进度总结(一)
    《人月神话》阅读笔记(1)
    Android studio的安装与使用
  • 原文地址:https://www.cnblogs.com/shinhwa/p/3299739.html
Copyright © 2011-2022 走看看