Java中接口面向对象的一些感悟和分析

本文探讨了Java中接口如何增强面向对象的特性,通过接口定义统一方法以简化复杂性,实现不同类间的抽象功能,如画图的擦除和画点。文章通过实例化接口中的抽象函数,定义Action并进行循环调用,展示了面向对象编程的层次结构和逻辑清晰的魅力。
摘要由CSDN通过智能技术生成

Java有很好的面对对象的特性,接口给出了抽象的、没有实例化的方法,就是在上一个层面上完善面对对象的特性。比如画图的擦除、画图的画点等功能,对于不同的类他的方法是不一样的,但是在每一个类中具体去定义又显得复杂,干脆升维度,在接口中给出类的统一方法,便于理解和读懂。

第二个部分就是分别在不同的类中实例化刚刚接口中的抽象函数。

第三部分真正的实施的主体,定义了需要完成的Action,这个也是不区分类的,抽象的一个总体,便于理解。然后通过一个循环语句对刚刚的定义的类实例化。

面对对象编程的魅力就在这里,他是符合框架的,逻辑树的,分层次的,金字塔结构的一种语言特性,充满魅力又容易理解。

package test;

public interface Shape {
	void draw();
	void erase();
}
class Circle implements Shape{
	public void draw() {
		System.out.println("Calling Circle draw()");
	}
	public void erase() {
		System.out.println("Calling Circle erase()");
	}
}


class Square implements Shape{
	public void draw() {
		System.out.println("Calling Square draw()");
	}
	public void erase() {
		System.out.println("Calling Square erase()");
	}
}

class Triangle implements Shape{
	public void draw() {
		System.out.println("Calling Triangle draw()");
	}
	public void erase() {
		System.out.println("Calling Triangle erase()");
	}
}

public class Test{
	static void drawOneShape(Shape s) {
		s.draw();
	}
	static void drawShapes(Shape[] ss) {
		for(int i=0;i<ss.length;i++) {
			ss[i].draw();
		}
	}//定义一个不区分类的统一的行为方法,总体的结构
	public static void main(String [] agus) {
		Random rand=new Random();
		Shape[] s=new Shape[9];//申明一个含有9个Shape实例的数组,开辟空间
		for(int i=0;i<s.length;i++) {
			switch(rand.nextInt(3)) {
				case 0:s[i]=new Circle();break;//对数组中的类实例化
				case 1:s[i]=new Square();break;
				case 2:s[i]=new Triangle();break;
			}
		}
		drawShapes(s);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值