已有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
你這樣的寫法是最完美的,直觀的
之前我有想過這樣的寫,
但是 考慮到 新手 不太好理解這麼多的概念性問題!
因此我才寫成另外的樣子。
嗬嗬你的例子寫的很不錯也很容易理解
不過沒有實現多個接口
隻是一個類實現一個接口
所以我才重新寫了一個