Java Interface and Class Hierarchy

public interface IClassUpA {
?? ?public void sayA();
}

public interface IClassUpB {
??? public void sayB();
}

public interface IClassUp extends IClassUpA, IClassUpB {
??? public void say();
}

// Do NOT implements IClassUpA here!
public class ClassUpA {
??? public void sayA() {
??? ??? System.out.println("ClassUpA sayA()");
??? }
}

// Here ClassUp implements IClassUp, which extends IClassUpA and IClassUpB.
//
// Now the ClassUp's method sayA(), which extended by ClassUpA, is the
// implementation of IClassUpA#sayA().
//
// That is to say, even though ClassUpA.sayA() is not the implementation of
// IClassUpA.sayA, it becomes the implementation of IClassUpA.sayA() by its
// descendant class ClassUp through "extends ClassUpA implements IClassUp".
//
// Something interesting and somewhat confusing for some large system.
public class ClassUp extends ClassUpA implements IClassUp {
??? // No need to implement the IClassUpA.sayA() here!
??? public void say() {
??? ??? System.out.println("ClassUp say()");
??? }
??? public void sayB() {
??? ??? System.out.println("ClassUp sayB()");
??? }
}

// Test my idea.
public class InterfaceAndClassTest {
??? public static void main(String[] args) {
??? ??? Object cu = new ClassUp();
??? ??? if (cu instanceof ClassUpA) {
??? ??? ??? ClassUpA myCU = (ClassUpA) cu;
??? ??? ??? myCU.sayA();
??? ??? }
??? }
}
// Result:
// ClassUpA sayA()

// Copyright NOTICE:
// You are authorized to copy and use this example codes and comments for
// non-commercial use, under the condition that you keep? the article's copyright
// notice unchanged and ship with the notice.

// This article is firstly posted at
// http://blog.csdn.net/reve/

/*******************************************************************************
?* Copyright (c) 2002, 2004 IDSignet.
?* All rights reserved.
?* http://www.idsignet.com
?*
?* Created on Jul 6, 2004
?*******************************************************************************/

/**
?* @author Janyckee Joz
?*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值