當前位置:係統粉 > 電腦問答 > 其他問答 > JAVA中如何實現多重繼承???

JAVA中如何實現多重繼承???

提問者:jackie71365  |  瀏覽 次  |  提問時間:2017-01-13  |  回答數量:9

JAVA中如何實現多重繼承??? 如題!!

已有9條答案
一世無存小誓言

一世無存小誓言

回答數:55  |  被采納數:102

2017-01-13 18:56:16
在函數中定義一個對象
或者
通過參數給函數傳進去一個對象

使用這些對象就可以調用父類的方法了
實現繼承了父類的效果!
讚 5
張紅根

張紅根

回答數:179  |  被采納數:55

2017-01-13 18:32:57
記得可以使用利用接口來實現多重繼承!
讚 17
劉小祿吧務

劉小祿吧務

回答數:90  |  被采納數:127

2017-01-13 20:40:17
實現接口多繼承
參考例子 如下:求三角形,正方形的麵積和周長

package com.neo.project;

import java.text.DecimalFormat;

interface CalcMethods {
void calcArea();
void calcPerimeter();
}

class Triangle implements CalcMethods {
private DecimalFormat DFormat = new DecimalFormat("###,###.##");
private double side_1, side_2, side_3;

public Triangle(double side_1, double side_2, double side_3) {
this.side_1 = side_1;
this.side_2 = side_2;
this.side_3 = side_3;
}

public boolean isTriangle() {
if((side_1 + side_2) > side_3 && (side_1 + side_3) > side_2 && (side_2+side_3) > side_1) {
System.out.println("Triangle:");
System.out.println("side_1 = " +side_1+ ", side_2 = " +side_2+ ", side_3 = " +side_3);
return true;
}
System.out.println("It is not triangle.");
return false;
}

public void calcArea() {
double temp = (side_1 + side_2 + side_3) / 2;
double area = Math.sqrt(temp * (temp-side_1) * (temp-side_1) * (temp-side_3));
System.out.println("Triangle area = " +DFormat.format(area));
}

public void calcPerimeter() {
double perimeter = side_1 + side_2 + side_3;
System.out.println("Triangle perimeter = " +DFormat.format(perimeter));
}
}

class Square implements CalcMethods {
private DecimalFormat DFormat = new DecimalFormat("###,###.#");
private double side;

public Square(double side) {
this.side = side;
}

public void calcArea() {
System.out.println("\nSquare:");
System.out.println("side = " +side);
double area = side * side;
System.out.println("Square area = " +DFormat.format(area));
}

public void calcPerimeter(){
double perimeter = 4 * side;
System.out.println("Square perimeter = " +DFormat.format(perimeter));
}
}

public class Example {
public static void main(String[] args){
double side_1 = 3.0;
double side_2 = 4.0;
double side_3 = 5.0;
double side = 3.0;
if (side_1 <= 0 || side_2 <= 0 || side_3 <= 0) {
System.out.println("Input Triangle positive.");
return;
}
if (side <= 0) {
System.out.println("Input Square positive.");
return;
}

Triangle triangle = new Triangle(side_1, side_2, side_3);
Square square = new Square(side);
if(triangle.isTriangle()){
triangle.calcArea();
triangle.calcPerimeter();
}

square.calcArea();
square.calcPerimeter();
}
}
讚 9
孤獨旅行喲

孤獨旅行喲

回答數:96  |  被采納數:90

2017-01-14 01:26:29
麵積和周長的例子是通過接口實現多重繼承一個很經典的例子
讚 9
祭草

祭草

回答數:30  |  被采納數:146

2017-01-13 21:58:26


所以我才自己寫了這個簡單的例子,希望能通過此例 讓LZ 能明白!
讚 3
wwdcapple6

wwdcapple6

回答數:129  |  被采納數:31

2017-01-14 06:42:47
恩,是的,例子雖然簡單,但是很清晰,能讓不懂的人明白多重繼承的含義
讚 12
引擎的聲音

引擎的聲音

回答數:208  |  被采納數:7

2017-01-14 03:09:42
嗬嗬接口談不上是繼承可以說實現了XX接口

一個類繼承一個抽象類 然後實現多個接口 可以這樣寫

public class T0109 extends AbstractClass implements Interface1, Interface2{

}

interface Interface1{}

interface Interface2{}

abstract class AbstractClass{}
讚 20
harbour599

harbour599

回答數:163  |  被采納數:93

2017-01-13 23:53:29

你這樣的寫法是最完美的,直觀的
之前我有想過這樣的寫,
但是 考慮到 新手 不太好理解這麼多的概念性問題!
因此我才寫成另外的樣子。
讚 16
戰軍66

戰軍66

回答數:26  |  被采納數:141

2017-01-14 03:30:05
嗬嗬你的例子寫的很不錯也很容易理解
不過沒有實現多個接口
隻是一個類實現一個接口
所以我才重新寫了一個
讚 2
解決方法
  • 其實她才是真正的世界首富,歐萊雅繼承人去世

    其實她才是真正的世界首富,歐萊雅繼承人去世

    提起天下首富,大家首先想到的必定是微軟創始人、美國企業家比爾蓋茨,他曾在1995年至2007年持續13年排名《福布斯》環球富豪榜第一名。但假如把範圍縮小到女首富,很多人可能無法敏捷...

  • Win8如何實現無盤刷新和重置係統

    Win8如何實現無盤刷新和重置係統

    不需要安裝介質能直接從係統環境和RE環境進行係統刷新和重置。Windows和Office保留激活狀態,其中新刷新能保留文檔和應用,重置則不能。步驟如下:1、使用快捷鍵WIN...

  • 繼續挖掘人才!穀歌在多倫多再建AI實驗室

    繼續挖掘人才!穀歌在多倫多再建AI實驗室

    據外媒報道,美國科技巨頭穀歌公司希望進一步的發展人工智能技術,這些公司都想要從加拿大獲得更多的人才來推動人工智能的發展。就在本周四的時候,穀歌宣布他們在加拿大多倫多開設了一...

  • 重拳出擊:多款微軟認證混合現實MR設備大曝光!

    重拳出擊:多款微軟認證混合現實MR設備大曝光!

    微軟正在以Windows 10為中心,搭建混合現實的主要平台。微軟已經說服幾個傳統的硬件合作夥伴設計了專門的MR頭戴設備,以便用戶擁有一致的用戶界麵和標準化輸入。同時,對於開發者來...

版權信息

Copyright @ 2011 係統粉 版權聲明 最新發布內容 網站導航