java 类的继承和多态 2

1,编写一个圆锥类,能够计算圆锥的体积,要求圆锥类的构造函数中有一参数是圆类的一个对象。

package d;

public class Yuan {
        int r;
        final double pi=3.14;
        Yuan(){}
        double getmj(int r){
            return r*r*pi;
        }       
}
package d;

public class Yuanzhui {
    Yuan a=new Yuan();
    int h;
    int r;
    Yuanzhui(int h,int r){
        this.h=h;
        this.r=r;
    }
    double gettj(){
        return 1.0/3*h*a.getmj(r);
    }

}
package d;

public class Testsy4 {
    public static void main(String[] args){
        Yuanzhui a=new Yuanzhui(6,1);
        System.out.println(a.gettj());
    }
}

2,定义接口Shape,其中包括Area方法。类Circle、Square和Triangle均实现了接口Shape。定义主函数,创建元素个数为3的Shape类型的一维数组,分别为数组元素创建Circle、Square和Triangle类型的对象,最后分别调用各数组元素的Area方法,输出相关信息。

package e;

public interface Shape {
        final double pi=3.14;
        double getArea();
}
package shiyan5;

public class Circle implements Shape{
    double r;
    Circle(double r){
        this.r=r;
    }
    public double getArea() {
        return pi*r*r;
    }
}
package e;

public class Square implements Shape{
    double chang;
    double kuang;
    Square(double chang,double kuang){
        this.chang=chang;
        this.kuang=kuang;
    }
    public double getArea() {
        return chang*kuang;
    }

}
package e;

public class Triangle implements Shape{
    double a;
    double b;
    double c;
    Triangle(double a,double b,double c){
        this.a=a;
        this.b=b;
        this.c=c;
    }
    public double getArea() {
        double p=(a+b+c)/2.0;
        double s=Math.sqrt(p*(p-a)*(p-b)*(p-c));
        return s;
    }

}
package e;

public class Testsy5 {
    public static void main(String[] args) {
        Shape[] s={new Circle(3),new Square(2.6,1.8),new Triangle(3,4,5)};
        for(int i=0;i<3;i++)
        System.out.println(s[i].getArea());
    }
}

6,定义一个接口,定义方法query_course_catalog()用来查询课程,定义一个类 Student实现该接口,并包括如下属性:学号(ID)、姓名(name)、性别(Sex)、出生日期(birthDate)、专业(specialty)、课程(course),还要实现以下方法:每个属性的获取和定义,要求至少包含一个构造方法。

package f;

public interface Xinxi {
    void query_course_catalog();

}
package f;

public class Student implements Xinxi{
    String id;
    String name;
    String sex;
    String date;
    String specialty;
    String course;
    Student(String id,String name,String sex,String date){
        this.id=id;
        this.name=name;
        this.sex=sex;
        this.date=date;
    }
    void getsc(String specialty,String course){
        this.specialty=specialty;
        this.course=course;
    }
    public void query_course_catalog() {
              System.out.println("学号:"+this.id);
              System.out.println("姓名:"+this.name);
              System.out.println("性别:"+this.sex);
              System.out.println("生日:"+this.date);
              System.out.println("专业:"+this.specialty);
              System.out.println("课程:"+this.course);    
    }
}

package f;

public class Testsy6 {
    public static void main(String[] args) {
        Student a=new Student("2014214065","xcw","man","19960919");
        a.getsc("computer","java");
        a.query_course_catalog();
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值