DAY16-JAVA的继承(3)

改写
改写(overriding)的观念和多载相似,他们都是JAVA的多型(polymorphism)的技术之一。polymorphism的原意是「多样性」,而多型的特色即是函数在不同的情况下可扮演不同的角色。

class Test{  //父类别
    ...
    public void area(){  //父类别里的area()函数
        ...
    }
}
class lala extends Test{  //子类别 
    ...
    public void area(){  //子类别里的area()函数
        ...
    }
}    
public static void main(String args[]){
    lala.area();
}

从上面的程序可以看到,父类别和子类别都有一个不需要引数且名称相同的area()函数,但是当lala这个物件呼叫时,到底是哪一个area()会被呼叫呢?

子类别里所定义的area()取代父类别的area()功能,这种情形於OOP的技术里称之为「改写」。也就是说透过「改写」的技术,於子类别中可定义和父类别里的名称、引数个数与资料型态完全相同的函数,用以取代父类别中原有的函数。

多载与改写的比较
-多载:是在相同类别内,定义名称相同,但引数个数或型态不同的函数,如此一来,JAVA便可依据引数的个数或形态,呼叫相对应的函数。

-改写:是在子类别中,定义名称、引数个数与传回值的型态均与父类别相同的函数,用以改写父类别里的函数功用。

final修饰子
(1)变数或是类别里的资料成员经过final宣告之後,就像常数般无法在被更改其值,他的值只能在final宣告时设定一次。
(2)函数经过final宣告之後,不能被改写。
(3)类别经过final宣告之後,不能被继承。

菜鸟工程师的体脂肪

菜鸟工程师也有分享食记,欢迎大家追踪喔~~
https://instagram.com/engineer_bodyfat?utm_medium=copy_link

中秋假期开始啦~~
See U tomorrow:))


<<:  DAY 6 Big Data 5Vs – Volume(容量) – Redshift Spectrum

>>:  [前端暴龙机,Vue2.x 进化 Vue3 ] Day9.计算属性 computed

[DAY 02] IAM

IAM (Identity and Access Management) 对於 AWS 上的服务安全...

电路级(Circuit-level)授权策略不是常见的服务网格授权策略类型

以下是 NIST SP 800-204B 的摘录: 可以通过配置身份验证和存取控制策略来实施对微服务...

day18 kotlin - flow基本操作

我会从文档中挑几个重要的出来讲,但不会是全部,我会着重一些基本的中间操作,异常,取消,dispatc...

当Expection发生时, 如何显示完整的CallStack和位置 (Traceback应用)

为了在python GUI 程序开发时有更好的开发者体验, 笔者喜欢先收集别人的痛点及各种解决方案,...

Day 22 : Docker化Jmeter 与连结Jenkins自动化测试

在一个专案Build完成後,通常会跑一些测试来检测这个专案到底能够承受多少的流量与有没有一些会影响使...