overridetest.java

来自「主要是java书上的一些代码」· Java 代码 · 共 96 行

JAVA
96
字号
//: OverrideTest.java

//package g3ds.joop.ch4;

public class OverrideTest{
	public static void main(String[] args){
		//测试:当前类将调用自己类中定义的同名方法
		//new Oval().draw();
		//new Rectangle().draw();
		
		//测试:利用声明为超类的数组对象实现对扩展类对象的管理
		Shape[] shapes=new Shape[5];
		for(int i=0; i<shapes.length; i++){
			//创建数组元素
			shapes[i]=createShape((int)(Math.random()*5));
			//调用相应的绘制方法
			shapes[i].draw();
		}
		
	}
	
	//用于测试的创建几何元素方法
	static Shape createShape(int seed){
		Shape shape=null;
		switch(seed){
			case 0:
				System.out.print("创建椭圆...");
				shape=new Oval();
				break;
			case 1:
				System.out.print("创建四边形...");
				shape=new Quadrangle();
				break;
			case 2:
				System.out.print("创建三角形...");
				shape=new Triangle();
				break;
			case 3:
				System.out.print("创建正方形...");
				shape=new Square();
				break;
			case 4:
				System.out.print("创建长方形...");
				shape=new Rectangle();
				break;
		}
		
		return shape;
	}
}

//定义一个抽象类表示几何形状
abstract class Shape{
	//声明一个绘制几何形状的抽象方法
	public abstract void draw();
}

//定义椭圆作为Shape的子类
class Oval extends Shape{
	//采用多态性机制,重新定义方法的实现
	public void draw(){
		System.out.println("绘制椭圆");
	}
}

//定义四边形作为Shape的子类
class Quadrangle extends Shape{
	//采用多态性机制,重新定义方法的实现
	public void draw(){
		System.out.println("绘制四边形");
	}
}

//定义三角形作为Shape的子类
class Triangle extends Shape{
	//采用多态性机制,重新定义方法的实现
	public void draw(){
		System.out.println("绘制三角形");
	}
}

//定义正方形作为Quadrangle的子类
class Square extends Quadrangle{
	//采用多态性机制,重新定义方法的实现
	public void draw(){
		System.out.println("绘制正方形");
	}
}

//定义长方形作为Quadrangle的子类
class Rectangle extends Quadrangle{
	//采用多态性机制,重新定义方法的实现
	public void draw(){
		System.out.println("绘制长方形");
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?