最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java語言中的抽象類與繼承

 更新時間:2022年10月20日 17:00:47   作者:臨風.  
這篇文章主要為大家詳細介紹了Java語言中的抽象類與繼承的相關資料,文中的示例代碼講解詳細,對我們學習Java有一定的幫助,感興趣的小伙伴快跟隨小編一起了解一下

一、實驗目的

1、掌握抽象類的設計;

2、掌握抽象方法方法的實現(xiàn);

3、熟悉類的向下向上轉型,以及子類實例化父類對象的基本要求;

4、掌握通過類的繼承實現(xiàn)抽象類。

二、實驗要求

(一)編寫一個Shape抽象類,其中包含有:

1個成員變量:表示長度,數(shù)據(jù)類型為double。當類為Circle時,表示半徑;當類為Square時,表示其邊長; 2個抽象方法area()、perimeter(),分別用于計算圖形的面積、周長。

public abstract class Shape{
    private double length;  // 定義一個私有的成員變量

    public double getLength() { // 定義一個方法 getLength() 返回長度值
        return length;
    }

    public void setLength(double length) {  // 定義一個方法 setLength() 獲得長度值
        this.length = length;
    }
    public abstract double area();  // 定義一個抽象方法 area(),求面積
    public abstract  double perimeter();    // 定義一個抽象方法,求周長
}

(二)設計類Circle(圓形)和類Square(正方形),實現(xiàn)抽象類Shape中的所有抽象方法,其中計算圓的面積、周長時,π可以直接引用Math.PI。

class Circle extends Shape{ // 定義一個實現(xiàn)抽象類 Circle 圓形,繼承自抽象類 Shape
    @Override
    public double area() {  // 實現(xiàn)抽象類中的 area() 方法
        return Math.PI * getLength() * getLength(); // 返回圓的面積
    }

    @Override
    public double perimeter() { // 實現(xiàn)抽象類中的 perimeter() 方法
        return 2 * Math.PI * getLength();   // 返回圓的周長
    }
}

class Square extends Shape{ // 定義一個實現(xiàn)抽象類 Square 方形,繼承自抽象類 Shape
    @Override
    public double area() {  // 實現(xiàn)抽象類中的 area() 方法
        return getLength() * getLength();   // 返回方形的面積
    }

    @Override
    public double perimeter() { // 實現(xiàn)抽象類中的 perimeter() 方法
        return 4 * getLength(); // 返回方形的邊長
    }
}

(三)創(chuàng)建一個包含main方法的Test類,測試相關的類和抽象類。

class Test{ // 定義一個測試類
    public static void main(String[] args) {    // 主入口函數(shù)
        Shape circle = new Circle();    // 定義一個Shape 類型的circle對象,用Circle類進行實例化
        circle.setLength(3);    // 傳入參數(shù)
        System.out.println("圓的半徑為:" + circle.getLength());
        System.out.println("圓的面積為:" + circle.area());
        System.out.println("圓的周長為:" + circle.perimeter());

        Shape square = new Square();    // 定義一個Shape 類型的square對象,用Square類進行實例化
        square.setLength(3);    // 傳入參數(shù)
        System.out.println("正方形的邊長為為:" + square.getLength());
        System.out.println("正方形的面積為:" + square.area());
        System.out.println("正方形的周長為:" + square.perimeter());
    }
}

全部代碼展示

package experiment11.java;

public abstract class Shape{
    private double length;  // 定義一個私有的成員變量

    public double getLength() { // 定義一個方法 getLength() 返回長度值
        return length;
    }

    public void setLength(double length) {  // 定義一個方法 setLength() 獲得長度值
        this.length = length;
    }
    public abstract double area();  // 定義一個抽象方法 area(),求面積
    public abstract  double perimeter();    // 定義一個抽象方法,求周長
}

class Circle extends Shape{ // 定義一個實現(xiàn)抽象類 Circle 圓形,繼承自抽象類 Shape
    @Override
    public double area() {  // 實現(xiàn)抽象類中的 area() 方法
        return Math.PI * getLength() * getLength(); // 返回圓的面積
    }

    @Override
    public double perimeter() { // 實現(xiàn)抽象類中的 perimeter() 方法
        return 2 * Math.PI * getLength();   // 返回圓的周長
    }
}

class Square extends Shape{ // 定義一個實現(xiàn)抽象類 Square 方形,繼承自抽象類 Shape
    @Override
    public double area() {  // 實現(xiàn)抽象類中的 area() 方法
        return getLength() * getLength();   // 返回方形的面積
    }

    @Override
    public double perimeter() { // 實現(xiàn)抽象類中的 perimeter() 方法
        return 4 * getLength(); // 返回方形的邊長
    }
}

class Test{ // 定義一個測試類
    public static void main(String[] args) {    // 主入口函數(shù)
        Shape circle = new Circle();    // 定義一個Shape 類型的circle對象,用Circle類進行實例化
        circle.setLength(3);    // 傳入參數(shù)
        System.out.println("圓的半徑為:" + circle.getLength());
        System.out.println("圓的面積為:" + circle.area());
        System.out.println("圓的周長為:" + circle.perimeter());

        Shape square = new Square();    // 定義一個Shape 類型的square對象,用Square類進行實例化
        square.setLength(3);    // 傳入參數(shù)
        System.out.println("正方形的邊長為為:" + square.getLength());
        System.out.println("正方形的面積為:" + square.area());
        System.out.println("正方形的周長為:" + square.perimeter());
    }
}

三、實驗報告要求

1、按照程序編寫、調試、測試過程,在實驗報告中體現(xiàn)全部源代碼、基本調試過程、和最終的運行結果(原始屏幕)。

2、程序運行結束,在源代碼目錄中執(zhí)行Dir命令,把Dir執(zhí)行結果作為報告的最后部分提交。

四、實驗小結

抽象類同類相似,只是在設置方法時,沒有方法體的方法要在修飾符后加abstract,實現(xiàn)抽象類如果沒有完全實現(xiàn)抽象類中的方法,那么它仍然是一個抽象類,依然要用abstract來修飾。

在主函數(shù)中實例化類中,父類類型的變量用子類實例化時,此變量可以擁有父類的屬性和方法。

對象調用的方法如果已經被子類重寫過了則調用的是子類中重寫的方法,而不是父類中的方法;

如果想要調用子類中和父類同名的成員變量,則必須通過getter方法或者setter方法;

如果想調用子類中和父類同名的靜態(tài)方法,直接子類 “類名點” 操作獲取,不要通過對象獲?。?/p>

到此這篇關于詳解Java語言中的抽象類與繼承的文章就介紹到這了,更多相關Java抽象類 繼承內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Maven Repository倉庫的具體使用

    Maven Repository倉庫的具體使用

    本文主要介紹了Maven Repository倉庫的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Spring中bean對象的裝配方式、作用域及生命周期詳解

    Spring中bean對象的裝配方式、作用域及生命周期詳解

    這篇文章主要介紹了Spring中bean對象的裝配方式、作用域及生命周期詳解,SprignBoot中?@Bean?完美的替換了了上面的這種在xml中配置的方法,使用以下方法就能讓spring在需要自動創(chuàng)建Info對象時,自動調用這個方法,需要的朋友可以參考下
    2023-11-11
  • 如何實現(xiàn)Java中一個簡單的LinkedList

    如何實現(xiàn)Java中一個簡單的LinkedList

    LinkedList與ArrayList都是List接口的具體實現(xiàn)類。下面將介紹如何實現(xiàn)一個簡單的LinkedList,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Spring IOC原理詳解

    Spring IOC原理詳解

    這篇文章主要介紹了Spring IOC原理詳解,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Spring注解@Value及屬性加載配置文件方式

    Spring注解@Value及屬性加載配置文件方式

    這篇文章主要介紹了Spring注解@Value及屬性加載配置文件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java安全編碼指南之:對象構建操作

    java安全編碼指南之:對象構建操作

    這篇文章主要介紹了java安全編碼指南之:對象構建操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 6種SpringBoot中自定義starter的方式介紹

    6種SpringBoot中自定義starter的方式介紹

    在SpringBoot生態(tài)中,starter是一種特殊的依賴,它能夠自動裝配相關組件,簡化項目配置,本文將詳細介紹6種不同的自定義starter開發(fā)方法,有需要的可以了解下
    2025-04-04
  • springboot整合shardingjdbc實現(xiàn)分庫分表最簡單demo

    springboot整合shardingjdbc實現(xiàn)分庫分表最簡單demo

    我們知道分庫分表是針對某些數(shù)據(jù)量持續(xù)大幅增長的表,比如用戶表、訂單表等,而不是一刀切將全部表都做分片,這篇文章主要介紹了springboot整合shardingjdbc實現(xiàn)分庫分表最簡單demo,需要的朋友可以參考下
    2021-06-06
  • JavaWeb使用POI操作Excel文件實例

    JavaWeb使用POI操作Excel文件實例

    這篇文章主要介紹了JavaWeb使用POI操作Excel文件,需要的朋友可以參考下
    2017-04-04
  • shrio中hashedCredentialsMatcher密碼匹配示例詳解

    shrio中hashedCredentialsMatcher密碼匹配示例詳解

    shrio是一個輕量級權限管理框架,密碼的匹配由框架內部完成。密碼是否匹配由接口CredentialsMatcher定義實現(xiàn)類完成,CredentialsMatcher實現(xiàn)類有SimpleCredentialsMatcher和HashedCredentialsMatcher兩個
    2021-10-10

最新評論

方城县| 永福县| 仪陇县| 常宁市| 京山县| 尼玛县| 饶河县| 广西| 永泰县| 曲麻莱县| 清新县| 两当县| 和顺县| 洪湖市| 搜索| 外汇| 和平县| 平度市| 都江堰市| 河间市| 昌邑市| 绥中县| 丹阳市| 海兴县| 五台县| 延庆县| 西贡区| 彩票| 灯塔市| 息烽县| 洪洞县| 南溪县| 图片| 丹东市| 息烽县| 佛坪县| 涞源县| 佛教| 承德县| 沂南县| 建始县|