`
gengwei431
  • 浏览: 15843 次
社区版块
存档分类
最新评论

Java中interface是否继承Object类

 
阅读更多
    首先我们从C++说起, c++可以多继承。也就是一个类型 --- class,可以继承自2个以上的父类型。多继承导致一个问题,很多人知道。例如,如果类型B,类型C均继承自类型A。然后类型D继承自类型B和C。那么构造D的实例的时候,由于要调用父类型的构造方法,最终会调用两次A的构造方法。结果类型D的实例有两套祖父的数据,也就是外公和爷爷长的一模一样,以后使用的时候很麻烦。每次D要和祖父打交道,都要额外的区分到底是外公还是爷爷。 再说,内存里面出现两套一模一样的东西,一个用不上,还容易引起混乱,岂不是浪费,又麻烦。
    所以,java就通过严格的单一继承规则解决了这个问题。.net当然也一样,单一集成是一个定律。那么有:
    所有的类型 --- 只能继承自单一的类型;
    其次,大家知道,从一个class派生的必然是另一个class。Object是一个class,如果interface继承自Object,那么interface必然是一个class。那么,如果一个类型实现了一个interface,再有一个基类class, 那么它们的根源都是Object, 也即是这个类的实例也像c++一样,存在上述的问题。 因此接口肯定不是继承自Object,否则就违反了单一继承的定律。
		Set<String> result = new HashSet<String>();
		for (Method m : Set.class.getMethods())
			result.add(m.getName());
		System.out.println(result);

打印结果为:[iterator, toArray, addAll, remove, equals, containsAll, hashCode, contains, add, size, clear, isEmpty, retainAll, removeAll]
确实不包含Object中的public类型方法,也证明了上述推断。
0
0
分享到:
评论

相关推荐

    Test2_Interface.java

    -- 接口突破了java的单继承的局限性,因为接口可以多继承还能多实现 -- 继承关系: -- 子类和父类:子类继承父类后,就拥有了父类的功能----单继承 -- 子接口和父接口:子接口继承了父接口后,子接口也同样...

    JAVA面试题最全集

    一、Java基础知识 1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,... Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() ...

    java 面试题 总结

    Hashtable继承自Dictionary类,而HashMap是Java1.2引进的Map interface的一个实现。 最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而...

    Java面试宝典2017.zip

    1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在...

    java面试宝典

    42、一个“.java”源文件中是否可以包含多个类(不是内部类)?有什么限制? 12 43、说出一些常用的类,包,接口,请各举5 个。 12 44、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?是否可以...

    java课程设计报告-五子棋.doc

    、 Java中类定义的格式为: [类修饰符] class 类名 [extends 基类] [implements 接口] {// 成员变量声明 (Member variable declaration) // 成员方法声明 (Member method declaration)} 其中,class、extends和...

    java 面试常问的问题 如何回答

    1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在...

    java课程设计报告-五子棋(1).doc

    、 Java中类定义的格式为: [类修饰符] class 类名 [extends 基类] [implements 接口] {// 成员变量声明 (Member variable declaration) // 成员方法声明 (Member method declaration)} 其中,class、extends和...

    java课程设计报告-五子棋(2).doc

    、 Java中类定义的格式为: [类修饰符] class 类名 [extends 基类] [implements 接口] {// 成员变量声明 (Member variable declaration) // 成员方法声明 (Member method declaration)} 其中,class、extends和...

    Java面试宝典2011版

    1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 2、Java有没有goto? 3、说说&和&&的区别。 4、在JAVA中如何跳出当前的多重嵌套循环? 5、switch语句能否作用在byte上,能否作用在long上...

    Java问题宝典2012版

    1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 8 2、Java有没有goto? 8 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在...

    java面试题及答案.doc

    抽象类是否可继承实体类 22. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 23. 它们有何区别? 24. 构造器Constructor是否可被override? 25. 是否可以继承String类? 26. ...

    Object-C(通常简写为ObjC或OC)是一种扩充C的面向对象编程语言,它在许多方面都有着显著的特点和优势 以下是对Obje

    在Object-C中,类是用@interface定义的,而不是使用@class。Object-C的接口(相当于Java中的接口)则是用@protocol表示的。Object-C的方法调用被称为“消息传递”,这与Smalltalk的消息机制相似。Object-C中的方法...

    Core Java. Volume I. Fundamentals, 8th Edition JAVA核心技术1基础知识

    Object Oriented Network-Savvy Robust Secure Architecture Neutral Portable Interpreted High Performance Multithreaded Dynamic Java Applets and the Internet A Short History of Java Common Misconceptions...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    在 java 语言中,Java 程序的基本单位是类,也就是说:一个 Java 程序是由多个类组成 的。定义一个类与定义一个数据类型是有区别的。在程序设计语言中,把定义数据类型的能 力作为一种很重要的能力来对待。在面向...

    JAVA面向对象详细资料

    Java面向对象 1 1 学习方法与要求 1 2 面向对象语言与面向过程语言的区别 7 3 面向对象?什么对象? 8 4 什么是类? 9 5 如何创建一个类Class? 10 6 如何使用类创建对象 10 7 引用与实例 11 8 实例属性与实例方法 ...

    \java超强笔记(超级经典)

    四种元注释:java.lang.annotation中的类 元注释:注释注释的注释,用来限定注释的特征 @Terget 用来限定某个注释的使用范围,可以对什么元素进行注释 @Retention 用来描述注释的有效范围 @Inherited ...

    java经典面试题汇总

    2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...

    JAVA笔试题集锦(1-30)基础部分

    2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,...

Global site tag (gtag.js) - Google Analytics