DAY18-JAVA的抽象类别(1)

透过继承,我们可以从原有的类别衍生出新的类别,原有的类别称为父类别,而衍生出的类别称为子类别。透过这种机制,子类别不仅可以保有父类别的功能,同时也可以加入新的功能,以符合所需。

抽象类别
此外,JVAV也可以建立专门的类别用来当作父类别,这种类别称为「抽象类别」(abstract class)。抽象类别的目的在於,可以依据它的格式来修改并建立新的类别。

抽象类别中的abstract函数,只能宣告为public、protected,或者是不做宣告,但是不能宣告成private,以便子类别能取用到它。

abstract class 类别名称{ //定义抽象类别
宣告成员;
传回值的资料型态 函数名称(引数...){
...
}
修饰子 abstract 传回值的资料型态 函数名称(引数...);
}

抽象类别的目的是要依据它的格式来修改并建立新的类别,因此抽象类别里的「抽象函数」并没有定义处理方式
这句话的意思就是,当我们的子类别中有相同的资料成员要进行处理时,可以统一在父类别中进行函数和资料成员的设定;但是当各个子类别都需要用到相同的函式,但是处理方式不相同时,就可以先在父类别中定义,再把处理方法留在子类别中定义。

abstract class Shape{  //定义抽象类别Shape
    protected String color;  //资料成员
    public void Color(String str){  //一般函数,用来设计形状的颜色
        color = str;
    }
    public abstract void area();  //抽象函数,在此没有定义处理方法
}

下方是继承的子类别所进行的父类别「改写」。

class Circle extends Shape{  //定义子类别Circle
    protected double radius;  //资料成员
    
    public Circle(double r){  //建构元
        radius = r;
    }
    public abstract void area(){  //抽象函数,在此没有定义处理方法
        System.out.println("color= "+color+", ");
        System.out.println("area= "+3.14*radius*radius);
    }
}

菜鸟工程师的体脂肪

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

中秋连假第三天一样non-stop!!
See U tomorrow:))


<<:  DAY20-动态规划(三)

>>:  Day 05: 物件及资料结构、边界

第一章 之三

先前大致上看了这三个网域供应商都有各自的云端主机空间平台提供,接下来就针对空间与功能做个评比分享给大...

(Day30)第三方套件---图表套件Charts(下)

这篇会介绍图表套件Charts的功能 graphView.leftAxis.enabled = fa...

NIST SP 800-53 R5的摘要

-安全和隐私控制系列(来源:NIST SP 800-53 R5) .安全和隐私控制有效性解决了正确...

Day 8 - 变数又来了? 变数怎麽叫 a

变数怎麽叫 今天起两天,会介绍一下在C++里面,每一个变数的叫法规则,他们在电脑里面是怎麽样储存的。...

Day.8 Cache 的基本原理

为甚麽我们需要 Cache? 在思考为甚麽需要 Cache 之前,先思考程序是如何运行起来的 ? 我...