重写重载 & 继承 & 封装

重写重载 & 继承 & 封装

重写, 重载

什么是 重写/覆盖:
    当子类出现和父类一模一样的函数时,
    当子类对象调用该函数,会运行子类函数的内容。
    如同父类的函数被覆盖一样。

    当子类继承父类,沿袭了父类的功能,到子类中,
    但是子类虽具备该功能,但是功能的内容却和父类不一致,
    这时,没有必要定义新功能,而是使用覆盖特殊,保留父类的功能定义,并重写功能内容。

重写/覆盖 的条件:
    1,子类覆盖父类,必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败。
    2,静态只能覆盖静态。

重写/覆盖 和 重载的区别:
    重载:只看同名函数的参数列表。
    重写:子父类方法要一模一样。

继承

继承的好处: 
    提高了代码的复用性。

java只支持单继承多实现: 
    因为多继承容易带来安全隐患: 当多个父类中定义了相同功能, 当功能内容不同时, 子类对象不确定要运行哪一个。

继承的特点:
    1,变量。
    当子父类中定义了相同的名称的成员变量,子类要使用父类中的同名变量时,需要使用关键字super来区分。
    一般不会出现这种情况,因为父类中有了,子类不需要定义。而且父类定义时,一般变量都私有化。

    2,函数。
    子类可以直接访问父类中非私有的成员函数。
    特殊情况:当子类中定义了与父类一模一样的方法时,会发生覆盖操作。大多指的是非静态方法。
              最终会运行子类的方法,父类相当于被覆盖了。
              函数的另一个特性:覆盖(重写,复写)。
              什么时候用啊?
              当父类的功能要被修改时,不建议修改源码。因为是灾难。
              只要通过一个类继承原有类,定义一个新的升级后的功能即可。
              但是功能是相同的,只是实现方法改变。这是子类可以沿袭父类中的功能定义,
              并重写功能内容。这就是覆盖。

              覆盖很爽,但是有注意事项:
              1,子类覆盖父类时,必须权限要大于等于父类权限。
              2,静态不能覆盖非静态。

    3,构造函数。
    构造函数可以给本类进行对象初始化,也可以给子类对象进行初始化。
    子类对象初始化过程:
        子类中的所有构造方法都会访问父类中空参数的构造函数,
        因为每一个构造函数的第一行,都有一句隐式的super语句。
    为什么要有这条语句?
        因为子类会获取到父类中的数据,必须要先明确父类对数据的初始化过程。
        当父类中没有空参数构造函数时,子类构造函数必须通过super句来明确要访问的父类中指定的构造函数。

抽象Abstract
    特点:
        1, 抽象方法一定在抽象类中。
        2, 抽象方法和抽象类都必须被abstract关键字修饰。
        3, 抽象类不可以用new创建对象。因为调用抽象方法没意义。
        4, 抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法后,建立子类对象调用。
            如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
        5, abstract关键字和final,private关键字不能共存

接口Interface
    接口看上去是一个特殊的抽象类。里面存的都是抽象方法。
    接口中常见成员:常量,抽象方法, 而且这些成员都有固定的修饰符。
        常量:public static final
        方法:public abstract 

封装

封装就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用。

也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数)访问该对象。

好处:实现了专业的分工。将能实现某一特定功能的代码封装成一个独立的实体后,各程序员可以在需要的时候调用,从而实现了专业的分工。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值