当前位置:网站首页>3. abstract class (shape)

3. abstract class (shape)

2022-06-22 16:18:00 Xiaomurong

3 abstract class
Define an abstract class shape, Including the public calculation area area Method , Calculate the volume volume Method , Output basic information method printinfo( All three methods are abstract methods ).
from shape The derived point class , Add private data members x,y coordinate , And the construction method . from point The derived circle class , Increase the radius of private data members r, And the construction method .
from circle The derived cylinder class , Increase the height of private data members h, And the construction method .
stay main In the method , Definition shape Class object , Objects that reference derived classes , Output the basic information of three types of objects , area , Volume .

public class Test {
    
	public static void main(String[] args) {
    
		System.out.println("Point");
		shape sp1 = new Point(2, 2);
		sp1.printinfo();
		System.out.println("Circle");
		shape sp2 = new Circle(2);
		sp2.printinfo();
		sp2.area();
		System.out.println("Cylinder");
		shape sp3 = new Cylinder(2);
		sp3.printinfo();
		sp3.volume();
	}
}

abstract class shape {
    
	abstract void area();

	abstract void printinfo();

	abstract void volume();
}

class Point extends shape {
    
	private int x, y;

	Point(int x, int y) {
    
		this.x = x;
		this.y = y;
	}

	int getx() {
    
		return x;
	}

	int gety() {
    
		return y;
	}

	@Override
	void area() {
    
		// TODO Auto-generated method stub

	}

	@Override
	void printinfo() {
    
		// TODO Auto-generated method stub
		System.out.println(getx() + "," + gety());
	}

	@Override
	void volume() {
    
		// TODO Auto-generated method stub

	}

}

class Circle extends Point {
    
	private int r;

	public Circle(int r) {
    
		super(2, 2);
		this.r = r;
	}

	int getr() {
    
		return r;
	}

	void area() {
    
		System.out.println("area:" + r * r * 3.14);
	}

	void printinfo() {
    
		System.out.println(getx() + "," + gety() + "," + getr());
	}
}

class Cylinder extends Circle {
    
	private int h;

	Cylinder(int h) {
    
		super(2);
		this.h = h;
	}

	int geth() {
    
		return h;
	}

	void printinfo() {
    
		System.out.println(getx() + "," + gety() + "," + getr() + "," + geth());
	}

	void volume() {
    
		System.out.println("volume:" + 3.14 * Math.pow(super.getr(), 2) * geth());
	}
}
原网站

版权声明
本文为[Xiaomurong]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/173/202206221502449030.html