Java Interface and Class Hierarchy

原创 2004年07月06日 14:37:00
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
?*/

【Java】Java编译错误:需要class,interface或enum

源代码public class FirstSample{ public static void main(String[] args){ System.out.println("We wi...
  • White_Idiot
  • White_Idiot
  • 2017年01月22日 18:44
  • 3917

Java中abstract class和interface的区别

在Java语言中,abstract和interface是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对...
  • shuaijunlan
  • shuaijunlan
  • 2016年05月11日 20:32
  • 3208

判别Class是否属于Interface

判别Class是否属于Interface本人在最近的项目中遇到一个问题,需要往一个接口方法中增加参数,但由于项目已经稳定运行了很长一段时间,不可能去改造现有方法,只能通过新增接口的方式去解决。 对于...
  • an129
  • an129
  • 2017年02月23日 14:53
  • 289

The Interface and Class Hierarchy Diagram of Java Collections

原文: The Interface and Class Hierarchy Diagram of Java Collections
  • dtnqy
  • dtnqy
  • 2014年04月12日 21:05
  • 753

java编译错误:java 需要class,interface或enum

问题记录: 对定义了包的代码编译,产生标题中问题。 解决办法: Package关键词首字母大写了,改成package后,编译成功。 收获: 在编写代码时注意关键字的大小写,严格执行规...
  • lpp1234567
  • lpp1234567
  • 2014年03月03日 11:47
  • 2934

深入理解virtual,abstract class,interface

C++虚函数与JAVA中抽象函数比较,接口与抽象类,纯虚函数和虚函数的区别在于前者不包含定义,而后者包含函数体;abstract class和interface在Java语言中都是用来进行抽象类,语法...
  • nxh_love
  • nxh_love
  • 2013年12月13日 14:45
  • 7232

【转载】Tomcat 7.0.6X 启动慢并且遇到StackOverflowError的异常的解决办法

在做jbpm4.4 + spring3.2 + hibernate3.5整合时,启动TOMCAT报错。 错误如下: 严重: ContainerBase.addChild: start:  org...
  • guardiangel
  • guardiangel
  • 2016年06月13日 10:23
  • 990

Java的一个编译错误解决方法:需要class interface enum

出现这种编译错误通常有两个原因:         一是多了或者少了括号;         二是编码的格式有问题。      原因可以通过google很快找到。      下面讲下简单的解决办法:   ...
  • gwlee2010
  • gwlee2010
  • 2011年07月23日 11:52
  • 2982

第21章:class hierarchy

一:多重继承:1:在单个继承下,派生类的指针和引用可以自动转换为基类的指针和引用,对于多重继承也是如此,派生类的指针和引用可以转换为其任意基类的指针和引用。class A{ /***/ };class...
  • weishenmetlc
  • weishenmetlc
  • 2016年06月17日 21:45
  • 268

详解java中的abstract class和interface的区别

转载自http://blog.sina.com.cn/s/blog_624ca808010159ku.html 核心提示 在Java语言中,abstract class 和interface 是支持抽...
  • w962035216
  • w962035216
  • 2014年12月05日 11:07
  • 838
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java Interface and Class Hierarchy
举报原因:
原因补充:

(最多只允许输入30个字)