Abstract练习题

  1. 按需求实现图形类程序计算功能。
    要求:
    A. 定义一个图形类作为父类具体两个抽象方法:为计算面积和周长的方法(10分)
    B. 定义一个圆类和矩形类继承图形类,要求重写父类的抽象方法,分别实现计算面积和周长的方法。(20分)
    C. 定义测试类分别测试。(20分)
    要求实现如下:
    Abstract练习题
package Abstract2;

public abstract class Shape {

	public double zhouchang;//周长
	public double mianji;//面积
	
	public abstract void birth();//计算周长
	public abstract void area();//计算面积
}
//如果一个类中存在抽象方法,那这个类一定是抽象类吗?  是
//如果一个类是抽象类,那这个抽象类中一定存在抽象方法吗? 不一定
package Abstract2;

public class Rectangle extends Shape{
	public int width;
	public int height;

	@Override
	public void birth() {
		System.out.println("矩形的周长:"+(2*width+2*height));	
	}

	@Override
	public void area() {
		System.out.println("矩形的面积:"+(width*height));
	}
}
package Abstract2;

public class Circle extends Shape{

	public int r;//半径
	
	@Override
	public void birth() {
		System.out.println("圆的周长为:"+(2*3.14*r));	
	}

	@Override
	public void area() {
		System.out.println("圆的面积为:"+(3.14*r*r));	
	}
}
package Abstract2;

public class Test {

	public static void main(String[] args) {
		Shape s = null;
		s = new Circle();
		Circle ci = new Circle();
		ci = (Circle) s;
		ci.r = 4;
		s.area();
		s.birth();
		
		System.out.println("-------------");
		
		s = new Rectangle();
		Rectangle rect = new Rectangle();
		rect = (Rectangle) s;
		rect.height = 5;
		rect.width = 4;
		s.area();
		s.birth();
	}
}

Abstract练习题
2. 按需求实现程序功能。
要求:
① 定义一个乘车卡类。其中有一个抽象方法:消费金额
② 定义一个子类公交卡,继承乘车卡类,并实现其抽象方法。
③ 定义一个学生卡类,继承乘车卡,并实现其抽象方法
④ 定义一个老年卡类,继承乘车卡,并实现其抽象方法。
⑤ 定义测试类,分别定义公交卡,学生卡,老年卡类的对象,并测试。
要求实现如下:
Abstract练习题

package Abstract3;

public abstract class Car {
	public double money;//卡的金额
	
	public abstract void account();
}
package Abstract3;

public class Bus extends Car{

	@Override
	public void account() {
		System.out.println("公交卡剩余金额:"+this.money+"元");	
	}	
}
package Abstract3;

public class Old extends Car{

	@Override
	public void account() {
		System.out.println("老年卡剩余金额:"+this.money+"元");
	}
}
package Abstract3;

public class Student extends Car{

	@Override
	public void account() {
		System.out.println("学生卡剩余金额:"+this.money+"元");
	}
}
package Abstract3;

public class Test {

	public static void main(String[] args) {
		Car car = null;
		car = new Bus();
		car.money = 0.4;
		car.account();
		
		car = new Student();
		car.money = 0.2;
		car.account();
		
		car = new Old();
		car.money = 0.2;
		car.account();
	}
}

Abstract练习题

上一篇:抽象类abstract,最佳实践:模板设计模式_听韩顺平课笔记


下一篇:java基础-抽象类+接口