JAVA基础重温笔记|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);
}}
源码解析
DangerousMonster是 Monster的直接扩展,它产生了一个新接口。 DragonZilla中实现了这个接口。
在 Vampire中使用的语法仅适用于接口继承。一般情况下,只可以将 extends用于单一类,但是可以引用多个基类接口。就像所看到的,只需用逗号将接口名一一分隔开即可。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- Python基础|Python基础 - 练习1
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用