public B extends A{
}
A是父类,B是子类
子类对象出现与父类形式完全一致的方法,成为方法的覆盖
当父类提供的方法不够子类使用时,父类提供的方法只能对父类的属性进行处理
子类的构造方法要有super(),来调用在父类中的参数
以下是例题
输入一个圆柱体底圆的圆心坐标、圆半径、高度,分别计算并输出圆柱体的体积和表面积。
要求在Circle类的后面定义一个它的子类Cylinder类(圆柱体),该类包含以下成员:
成员变量h:高度,双精度浮点型
构造方法
成员方法calcArea():计算圆柱体表面积,返回双精度浮点数
成员方法calcV():计算圆柱体体积,返回双精度浮点数
成员方法getH():获得高度,返回双精度浮点数
输入输出示例(括号内是说明)
输入:
2 3 4 5 (圆心坐标x=2,y=3;半径r=4;高度h=5)
输出:
r=4.0
h=5.0
V=251.33 (圆柱体体积)
S=226.19 (圆柱体表面积)
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
double x,y,r,h;
x=in.nextDouble();y=in.nextDouble();
r=in.nextDouble();h=in.nextDouble();
Cylinder cy=new Cylinder(x,y,r,h);
System.out.println(“r=”+cy.getR());
System.out.println(“h=”+cy.getH());
System.out.println(“V=”+Math.round(cy.calcV()*100)/100.);
System.out.println(“S=”+Math.round(cy.calcArea()*100)/100.);
}
}
class Circle{
private double x,y,r;
public Circle(double x,double y,double r){
this.x=x;this.y=y;this.r=r;
}
public double perimeter(){ //计算圆周长
return 2*Math.PI*r;
}
public double area(){ //计算圆面积
return Math.PI*r*r;
}
public double getR(){
return r;
}
}
class Cylinder extends Circle{
private double h;
public double calcArea(){
return 2*Math.PI*getR()*h+Math.PI*getR()*getR()*2;
}
public double calcV(){
return Math.PI*getR()*getR()*h;
}
public Cylinder(double x, double y, double r,double h) {
super(x, y, r);
this.h=h;
}
public double getH(){
return h;
}
}
大概是自己通过做题的一些想法,还会再修改的