係統粉 > 電腦問答 > 其他問答

已解決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

實現接口多繼承
參考例子 如下:求三角形,正方形的麵積和周長

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();
}
}
2017-01-13 20:40:17
讚 9
孤獨旅行喲

孤獨旅行喲

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

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

祭草

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



所以我才自己寫了這個簡單的例子,希望能通過此例 讓LZ 能明白!
2017-01-13 21:58:26
讚 3
wwdcapple6

wwdcapple6

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

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

引擎的聲音

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

嗬嗬接口談不上是繼承可以說實現了XX接口

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

public class T0109 extends AbstractClass implements Interface1, Interface2{

}

interface Interface1{}

interface Interface2{}

abstract class AbstractClass{}
2017-01-14 03:09:42
讚 20
harbour599

harbour599

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


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

戰軍66

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

嗬嗬你的例子寫的很不錯也很容易理解
不過沒有實現多個接口
隻是一個類實現一個接口
所以我才重新寫了一個
2017-01-14 03:30:05
讚 2
相關問答
最新其他問答
解決方法