继承
题目:编写一个应用程序,创建一个矩形类,类中具有长、宽两个成员变量和求周长的方法。再创建一个矩形类的子类——正方形类,类中定义求面积方法、重写求周长的方法。在主类中,输入一个正方形边长,创建正方形对象,求正方形的面积和周长。(注意:所有类均在一个包中)
package Test; public class test7 { public static void main(String[] args) { // TODO Auto-generated method stub //建立矩形类的对象兵初始化 Rect rect = new Rect(3,4); //建立正方形的对象并初始化 Square squ = new Square(7); double area; double peri; //如果边长不符合要求,则会发生异常 if(rect.getLength()<=0||rect.getWidth()<=0||squ.getLenside()<=0) { throw new MyExcep("矩形的边长不能少于0"); } else { area = squ.getArea(); peri = squ.getPeri(); System.out.println("正方形的面积是:"+area+"正方形的周长是:"+peri); } } } class Rect { //定义长和宽 private double length; private double width; //空参数构造方法 Rect(){} //对矩形进行初始化 Rect(double length,double width){ this.length = length; this.width = width; } //设置一系列的访问器修改器 public double getLength() { return length; } public void setLength(double length) { this.length = length; } public double getWidth() { return width; } public void setWidth(double width) { this.width = width; } //返回周长 public double getPeri() { return (width+length)*2; } } class Square extends Rect{ //定义边长,总感觉借用父类中的长和宽不太规范,就多写了一个边长 private double lenside; //对正方形进行初始化 Square(double lenside){ this.lenside = lenside; } //访问器和修改器 public double getLenside() { return lenside; } public void setLenside(double lenside) { this.lenside = lenside; } //返回周长 public double getPeri() { return lenside*4; } //返回面积 public double getArea() { return lenside*lenside; } } //定义不规范发生的异常 class MyExcep extends RuntimeException{ MyExcep(String msg){ super(msg); } }