已有9条答案
一世无存小誓言
回答数:55 | 被采纳数:102
在函数中定义一个对象
或者
通过参数给函数传进去一个对象
使用这些对象就可以调用父类的方法了
实现继承了父类的效果!
实现接口多继承
参考例子 如下:求三角形,正方形的面积和周长
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();
}
}
面积和周长的例子是通过接口实现多重继承一个很经典的例子
所以我才自己写了这个简单的例子,希望能通过此例 让LZ 能明白!
wwdcapple6
回答数:129 | 被采纳数:31
恩,是的,例子虽然简单,但是很清晰,能让不懂的人明白多重继承的含义
呵呵接口谈不上是继承可以说实现了XX接口
一个类继承一个抽象类 然后实现多个接口 可以这样写
public class T0109 extends AbstractClass implements Interface1, Interface2{
}
interface Interface1{}
interface Interface2{}
abstract class AbstractClass{}
harbour599
回答数:163 | 被采纳数:93
你这样的写法是最完美的,直观的
之前我有想过这样的写,
但是 考虑到 新手 不太好理解这么多的概念性问题!
因此我才写成另外的样子。
呵呵你的例子写的很不错也很容易理解
不过没有实现多个接口
只是一个类实现一个接口
所以我才重新写了一个