javaSE基礎:extdens與implements同時使用的測試

武漢SEO運營發表於2020-10-23
  •  涉及多型的基礎使用,向上向下轉型
  • 涉及構造,區域性,抽象方法使用
  • 涉及實列,區域性,常量的使用
  • 涉及分支結構的使用
  • 涉及邏輯與賦值運算子的使用
  • 涉及import,Scanner類的使用
import java.util.Scanner;
public class Demo05 {
    /*
    * 定義一個a類繼承一個b類,實現一個介面c類,涉及構造方法,計算表面積和體積
    *圓表面積公式:s=π*r²
    * 圓體積計算公式:s*h
    * */
    //main方法
    public static void main(String[] args){
        Scanner s1 = new Scanner(System.in);
        System.out.println("請選擇計算型別:1,圓面積,2圓體積");
        int x2 = s1.nextInt();
        if(x2 == 1) {
            Yuan_3 y = new Yuan_2();
            //可以向下轉型,多型,也可以重新建立,Yuan_2物件
            Yuan_2 y1 = (Yuan_2) y;
            //鍵盤掃描
            Scanner s = new Scanner(System.in);
            System.out.println("請輸入圓面積的半徑:");
            double a = s.nextDouble();
            //封裝賦值
            y.setC(a);
            //列印,圓面積
            y1.fangFa01(a);
            //檢視實列變數的賦值結果
            System.out.println("實列變數c的賦值結果:"+y.getC()+"==》"+"實列變數h的賦值結果:"+y.getH());
        }else if(x2 == 2){
            //可以向下轉型,多型,也可以重新建立,Yuan_2物件
            Yuan_3 y2 =new Yuan_2();
            Yuan_2 y3 = (Yuan_2) y2;
            //掃描鍵盤
            System.out.println("請輸入圓的高:");
            double a1 = s1.nextDouble();
            System.out.println("請輸入圓面積:");
            double a2 = s1.nextDouble();
            //封裝賦值
            y2.setH(a1);
            //列印,體積
            y3.fangFa02(a1,a2);
            //檢視實列變數賦值結果
            System.out.println("實列變數c的賦值結果:"+y2.getC()+"==》"+"實列變數h的賦值結果:"+y2.getH());

        }else if(x2 != 2 && x2 != 1){
            System.out.println("您輸入有誤:請輸入1或者2==》1,圓面積,2圓體積");
        }
            /*
            出了大括號就不認識了
            //查詢封裝實列變數的賦值結果
            Yuan_3 x =new Yuan_2();
            System.out.println("實列變數c的賦值結果:"+x.getC()+"實列變數h的賦值結果:"+x.getH());
            */

    }
}
class Yuan_2 extends Yuan_3 implements Yuan_4{
    //定義一個實列變數
    double f;
    //實現
    public void fangFa01(double c){
        double d = c;
        double e = PI*(c*d);
        f = e;
        System.out.println("圓的表面積計算結果:"+e);
    }
    public void fangFa02(double c,double h){
        double c1 = c;
        System.out.println("圓的體積計算結果:"+((c*c1)*PI)*h);
    }
}
abstract class Yuan_3{
    //常量
    static final double PI =3.14;
    //定義實列變數
    private double c;
    private double h;
    //get,set
    public void setC(double c) {
        this.c = c;
    }

    public void setH(double h) {
        this.h = h;
    }

    public double getC() {
        return c;
    }

    public double getH() {
        return h;
    }

    //無參
    public Yuan_3(){

    }
    //有參
    public Yuan_3(double c){
        this.c = c;
    }
    public Yuan_3(double c,double h){
        this.c = c;
        this.h = h;
    }
}
interface  Yuan_4{
    void fangFa01(double c);
    void fangFa02(double c ,double h);

}

 

相關文章