系统粉 > 电脑问答 > 其他问答

已解决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
相关问答
最新其他问答
解决方法