Java之通过继承来扩展接口

示例源码


       通过继承,可以很容易地在接口中添加新的方法声明,还可以通过继承在新接口中组合数个接口。这两种情况都可以获得新的接口,就像在下例中看到的:

package com.mufeng.theninthchapter;

interface Monster {// 怪物
	void menace();// 威胁
}

interface DangerousMonster extends Monster {
	void destroy();// 破坏
}

interface Lethal {// 致命的
	void kill();// 杀死
}

class DragonZilla implements DangerousMonster {

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

	}

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

	}
}

interface Vampire extends DangerousMonster, Lethal {// 吸血鬼
	void drinkBlood();
}

class VeryBadVampire implements Vampire {
	@Override
	public void menace() {
		// TODO Auto-generated method stub

	}

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

	}

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

	}

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

	}

}

public class HorrorShow {
	static void u(Monster b) {
		b.menace();
	}

	static void v(DangerousMonster d) {
		d.menace();
		d.destroy();
	}

	static void w(Lethal l) {
		l.kill();
	}

	static void x(Vampire v) {
		v.menace();
		v.destroy();
		v.kill();
		v.drinkBlood();
	}

	public static void main(String[] args) {
		DangerousMonster barney = new DragonZilla();
		u(barney);
		v(barney);

		Vampire vlad = new VeryBadVampire();
		u(vlad);
		v(vlad);
		w(vlad);
		x(vlad);

	}

}

源码解析


       DangerousMonsterMonster的直接扩展,它产生了一个新接口。 DragonZilla中实现了这个接口。
       在 Vampire中使用的语法仅适用于接口继承。一般情况下,只可以将 extends用于单一类,但是可以引用多个基类接口。就像所看到的,只需用逗号将接口名一一分隔开即可。

你可能感兴趣的:(JAVA基础重温笔记,java编程思想学习笔记)