<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
1、掌握抽象類的設計;
2、掌握抽象方法方法的實現;
3、熟悉類的向下向上轉型,以及子類範例化父類別物件的基本要求;
4、掌握通過類的繼承實現抽象類。
(一)編寫一個Shape抽象類,其中包含有:
1個成員變數:表示長度,資料型別為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(正方形),實現抽象類Shape中的所有抽象方法,其中計算圓的面積、周長時,π可以直接參照Math.PI。
class Circle extends Shape{ // 定義一個實現抽象類 Circle 圓形,繼承自抽象類 Shape @Override public double area() { // 實現抽象類中的 area() 方法 return Math.PI * getLength() * getLength(); // 返回圓的面積 } @Override public double perimeter() { // 實現抽象類中的 perimeter() 方法 return 2 * Math.PI * getLength(); // 返回圓的周長 } } class Square extends Shape{ // 定義一個實現抽象類 Square 方形,繼承自抽象類 Shape @Override public double area() { // 實現抽象類中的 area() 方法 return getLength() * getLength(); // 返回方形的面積 } @Override public double perimeter() { // 實現抽象類中的 perimeter() 方法 return 4 * getLength(); // 返回方形的邊長 } }
(三)建立一個包含main方法的Test類,測試相關的類和抽象類。
class Test{ // 定義一個測試類 public static void main(String[] args) { // 主入口函數 Shape circle = new Circle(); // 定義一個Shape 型別的circle物件,用Circle類進行範例化 circle.setLength(3); // 傳入引數 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); // 傳入引數 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{ // 定義一個實現抽象類 Circle 圓形,繼承自抽象類 Shape @Override public double area() { // 實現抽象類中的 area() 方法 return Math.PI * getLength() * getLength(); // 返回圓的面積 } @Override public double perimeter() { // 實現抽象類中的 perimeter() 方法 return 2 * Math.PI * getLength(); // 返回圓的周長 } } class Square extends Shape{ // 定義一個實現抽象類 Square 方形,繼承自抽象類 Shape @Override public double area() { // 實現抽象類中的 area() 方法 return getLength() * getLength(); // 返回方形的面積 } @Override public double perimeter() { // 實現抽象類中的 perimeter() 方法 return 4 * getLength(); // 返回方形的邊長 } } class Test{ // 定義一個測試類 public static void main(String[] args) { // 主入口函數 Shape circle = new Circle(); // 定義一個Shape 型別的circle物件,用Circle類進行範例化 circle.setLength(3); // 傳入引數 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); // 傳入引數 System.out.println("正方形的邊長為為:" + square.getLength()); System.out.println("正方形的面積為:" + square.area()); System.out.println("正方形的周長為:" + square.perimeter()); } }
1、按照程式編寫、偵錯、測試過程,在實驗報告中體現全部原始碼、基本偵錯過程、和最終的執行結果(原始螢幕)。
2、程式執行結束,在原始碼目錄中執行Dir命令,把Dir執行結果作為報告的最後部分提交。
抽象類同類相似,只是在設定方法時,沒有方法體的方法要在修飾符後加abstract,實現抽象類如果沒有完全實現抽象類中的方法,那麼它仍然是一個抽象類,依然要用abstract來修飾。
在主函數中範例化類中,父類別型別的變數用子類範例化時,此變數可以擁有父類別的屬性和方法。
物件呼叫的方法如果已經被子類重寫過了則呼叫的是子類中重寫的方法,而不是父類別中的方法;
如果想要呼叫子類中和父類別同名的成員變數,則必須通過getter方法或者setter方法;
如果想呼叫子類中和父類別同名的靜態方法,直接子類 “類名點” 操作獲取,不要通過物件獲取;
到此這篇關於詳解Java語言中的抽象類與繼承的文章就介紹到這了,更多相關Java抽象類 繼承內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45