java通过继承来扩展接口

接口主要是为了向上转型,从而使基类(接口方法)更具灵活性!不想废话,看例子:


/**
*
*/
package interfaces;

interface Monster{
void menace();
}

interface DangerousMonster extends Monster{
void destory();
}

interface Lethal{
void kill();
}

class DragonZilla implements DangerousMonster{
public void menace(){
System.out.println("DangerousMonster menace()");
}

public void destory(){
System.out.println("DangerousMonster destory()");
}
}

interface Vampire extends DangerousMonster,Lethal{
void drinkBlood();
}

class VeryBadVampire implements Vampire{
public void menace(){
System.out.println("VeryBadVampire menace()");
}

public void destory() {
// TODO Auto-generated method stub
System.out.println("VeryBadVampire destroy()");
}

public void kill() {
// TODO Auto-generated method stub
System.out.println("VeryBadVampire kill()");
}

public void drinkBlood() {
System.out.println("VeryBadVampire dinrkBlood()");

}

}
public class HorrorShow {
static void u(Monster b){b.menace();}
static void v(DangerousMonster d){
d.menace();
d.destory();
}
static void w(Lethal l){
l.kill();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
DangerousMonster barney = new DragonZilla();
u(barney);
v(barney);

Vampire Vlad = new VeryBadVampire();
u(Vlad);
v(Vlad);
w(Vlad);
}

}

结果


DangerousMonster menace()
DangerousMonster menace()
DangerousMonster destory()
VeryBadVampire menace()
VeryBadVampire menace()
VeryBadVampire destroy()
VeryBadVampire kill()

java通过继承来扩展接口

时间: 2024-10-04 09:30:08

java通过继承来扩展接口的相关文章

java中单继承,多接口的实现及一些注意事项

java中一个类的直接父类只能有一个,但可以实现多个接口. 1 package javaKeyTechnology; 2 /** 3 * java中单继承,多接口. 4 * 一个类的直接父类只能有一个,但可以同时实现多个接口. 5 */ 6 class Fath{ 7 int age; 8 Fath(int age){ 9 this.age = age; 10 System.out.println("I am Father"); 11 } 12 } 13 14 interface Li

对Java单继承的弥补——接口

接口主要用来实现多重继承,它是常量和方法的集合,这些方法只有声明没有实现,即接口本身是抽象的,系统默认用abstract修饰. 1.接口的定义: 1 public interface A{ 2 int A=1;//默认为public static final常量 3 void displayA();//默认为public abstract抽象方法 4 } 2.接口可以实现多重继承: 1 interface A{ 2 int A=1; 3 void displayA(); 4 } 5 interf

Java编程思想笔记(接口)

1.抽象类和抽象方法: abstract void f();1.包含抽象方法的类叫做抽象类.如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的.2.如果从一个抽象类继承,并想创建该新类的对象,那么就必须为基类中的所有抽象方法提供方法定义.如果不这样做(可以选择不做),那么导出类便也是抽象类,且编译器将会强制我们用abstract关键字来限定这个类.      2.接口:interface Instrument{ //没有提供任何实现}    class Wind implements In

Java编程思想之九 接口

接口和内部为我们提供了一种将接口与实现分离的更加结构化的方法. 抽象类和抽象方法 创建一个抽象类是希望通过这个通用接口操纵一系列类. Java提供了一个叫做抽象方法的机制,这种方法是不完整的:仅声明而没有方法体. abstract void f(); 包含抽象方法的类叫做抽象类.如果一个类包含一个或多个抽象方法,那么该类必须限定为抽象的. 如果从一个抽象类继承,并想创建该新类的对象,那么就必须为基类的所有抽象方法提供方法定义. 9.2 接口 一个接口表示:所有实现该特定接口的类看起来都像这样.任

初识JAVA(【面向对象】:pub/fri/pro/pri、封装/继承/多态、接口/抽象类、静态方法和抽象方法;泛型、垃圾回收机制、反射和RTTI)

JAVA特点: 语法简单,学习容易 功能强大,适合各种应用开发:J2SE/J2ME/J2EE 面向对象,易扩展,易维护 容错机制好,在内存不够时仍能不崩溃.不死机 强大的网络应用功能 跨平台:JVM,字节码 两个命令: javac helloworld.java:将Java文件编译为字节码的.class文件 java helloworld:运行Java程序...??暂时这么认为 数据类型: 普通数据类型:int a=3; 对象数据类型:使用关键字new,String s=new String("

Java集合(三)、继承自Collection接口的List接口

一.Collection接口 首先,让我们来看一下Collection接口的继承体系 (一)Collection的常用功能 1. 添加功能 boolean add(E e) 添加一个元素 boolean addAll(Collection c) 添加一批元素 2. 删除功能 boolean remove(Object o) 删除一个元素 3. 判断功能 boolean contains(Object o) 判断集合是否包含指定的元素 boolean isEmpty() 判断集合是否为空(集合中没

关于Java中继承和接口的理解

关于Java中继承和接口的理解 Java语言中,为了实现代码重用,设计了继承这一机制,但是,其设计成单继承,这样设计是有原因的,如下图: Figure1:deadly diamond of death 此图问题称为菱形问题(diamond problem),就是说,当A的子类B和C同时实现了A中的方法,则同时继承了B和C的子类D在调用该方法时会出现混乱,无法得知该调用哪一个方法. 既然不能实现多继承,我们就会考虑把很多方法就写在父类里,或者继承抽象类,实现其方法,但是,这样会导致一个问题,比如说

从头认识java-7.5 怎样通过继承扩展接口?

我们这一章节来讨论一下怎样通过继承扩展接口. 接口跟类一样,具有继承的特性,但是他只是继承接口,不继承类. package com.ray.ch07; interface WhatPersonCanDo { void run(); void sleep(); } interface WhatSingerCanDo extends WhatPersonCanDo { void sing(); } class Singer implements WhatSingerCanDo { @Override

JAVA基础笔记(很实用)继承-多态-抽象类-接口-异常-集合-IO-线程-Socket

第七章:Java继承 一.继承的概念 1.一个父类派生出一个子类的机制称为继承. 2.承是重用程序代码的有力手段,当多个类之间存在相同的属性和方法时,可以从这些类中抽象出父类. 3.们只需要在父类中定义这些属性和方法,而子类无须重新定义这些属性和方法,直接从父类继承即可. 4.通过继承,子类就会自动的拥有在父类中定义的属性和方法. 5.两个或多个类的成员中存在一部分相同的情况,通过继承机制,可以利用现有的类来创建新的类. 6.子类不但拥有父类的成员,还可以定义新的成员. 7.可以提高软件的可重用