训练要点:
抽象类的定义和继承
抽象方法定乂和重号
需求说明:
1:定义抽象类MyShape(图形)
定义抽象方法获取图形的长度和面积
。
2:定义子类Rect继承父类My Shape
定义自身特有的长和宽(成员变量) width height;
实现父类未实现的函数。
3:定义子类 Circle实现父类My Shape
定义自身特有的半径和圆周率(使用常量)
实现父类为实现的方法。
package com.etc.day03.lianxi4;
public abstract class Myshape {
/**
* 获取长度
*/
public abstract void MyLength();
/**
* 获取面积
*/
public abstract void MySizes();
}
package com.etc.day03.lianxi4;
public class Circle extends Myshape{
private int r;
public int getR() {
return r;
}
public void setR(int r) {
this.r = r;
}
@Override
public void MyLength() {
System.out.println("圆形的长度为:" + 2 * Math.PI * r);
}
@Override
public void MySizes() {
System.out.println("圆形的面积为:" + Math.PI * r * r);
}
}
package com.etc.day03.lianxi4;
public class Rect extends Myshape{
private int length;
private int lenient;
public Rect() {
}
public int getLength() {
return length;
}
public void setLength(int length) {
this.length = length;
}
public int getLenient() {
return lenient;
}
public void setLenient(int lenient) {
this.lenient = lenient;
}
public Rect(int length, int lenient) {
this.length = length;
this.lenient = lenient;
}
@Override
public void MyLength() {
System.out.println("图形的长度为:" + 2 *(lenient + lenient));
}
@Override
public void MySizes() {
System.out.println("图形的面积为:" + length * lenient);
}
}
package com.etc.day03.lianxi4;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入长方型的长");
int length = scanner.nextInt();
System.out.println("请输入长方型的宽");
int lenient = scanner.nextInt();
Rect rect = new Rect(length,lenient);
rect.MyLength();
rect.MySizes();
System.out.println("请输入圆形的半径");
int r = scanner.nextInt();
Circle circle = new Circle();
circle.setR(r);
circle.MyLength();
circle.MySizes();
scanner.close();
}
}