抽象类实现多个接口与接口的继承的对比,实现良好的设计模式!


//少说废话,上代码:

import java.util.*;

interface Instrument
{
	static final int i = 2;
	void tune();
}

//测试多个接口的测试

interface Chord
{
	void shake();
}

interface RockCase
{
	void cover();
}

//利用抽象类的情况;
abstract class Sum implements Chord, RockCase, Instrument
{
	abstract public void tune();
	abstract public void shake();
	abstract public void cover();

}

interface  Sum_2 extends Chord, RockCase, Instrument
{
	//有次可以发现,一般情况下, extends 由于单一类,但是可以引用多个基类的接口,只要用逗号以一分开就好了;
}


//本质是实现也是继承

class Piano implements Instrument
{
	public void tune (){
		System.out.println("钢琴的声音");
	}
}

class Drum implements Instrument
{
	public void tune(){
		System.out.println("鼓的声音");
	}
}

class Violine implements Instrument
{
	public void tune(){

		System.out.println("小提琴的声音");
	}
}

class Erhu implements Instrument
{
	public void tune (){
		System.out.println("二胡的声音");
	}
}

class Flute extends Sum
{
	public void tune(){
		System.out.println("笛子再吹");
	}

	public void shake(){
		System.out.println("空气在震动");
	}
	public void cover(){
		System.out.println("箱子装起来笛子了,笛子不吹了!");
	}
}

class Flute_2 implements Sum_2
{
	public void tune(){
		System.out.println("笛子再吹");
	}

	public void shake(){
		System.out.println("空气在震动");
	}
	public void cover(){
		System.out.println("箱子装起来笛子了,笛子不吹了!");
	}
}



public class InterfaceTest
{
	public static void test(Sum a){
		System.out.println("这是实现了接口的符合的使用的情况!");
		a.tune();
		a.shake();
		a.cover();
	}

	public static void test_2(Sum_2 a){
		System.out.println("这是实现了接口的符合的使用的情况!");
		a.tune();
		a.shake();
		a.cover();
	}


	public static void main(String[] args){
		System.out.println("------------  1");
		System.out.println("这是接口的测试");
		
		Flute f = new Flute();
		f.tune();
		f.shake();
		f.cover();

		System.out.println("------------  2");
		
		test(new Flute());

		System.out.println("------------  3");
		//利用接口实现多重接口继承的情况; 
		test_2(new Flute_2());
		//接口的实现,利用抽象类,实现多重接口的复用;
	}
}

希望能帮上大家!


小红旗-2015/4/28



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值