Java细节01——类与接口,继承与实现
2013-09-03 23:56
375 查看
Java细节01——类与接口,继承与实现
就我们通常所知的——类可以继承类,类可以实现接口,接口可以继承接口。
这些知识,没有任何特别,如下所示:
class A{ //一个类 } interface AA{ //一个接口 } class B extends A{ //一个类【继承】另一个类 } class C implements AA{ //一个类【实现】一个接口 } interface BB extends AA{ //一个接口【继承】一个接口 } class D extends A implements AA{ //一个类【继承】一个类,同时【实现】一个接口 } interface CC extends AA,BB{ //一个接口【继承】多个接口 }
(1)一个接口可以实现一个接口么?
标准Java中是不可以的,eclipse也会报错,但是在android提供的开发者文档中,确实有这样的情况存在。
//Java7手册中的ListIterator接口 public interface ListIterator<E> extends Iterator<E> //Google Android Develop中描述 public interface ListIterator implements Iterator<E>
但是,事实上,在源码中使用的仍然是extends 而不是implements;
或许,此处可做进一步解读。
从第一个问题中,我们发现了一个新的领域,那么具有泛型的类又是怎样的呢?
//类 与接口:泛型篇 public class Test2 { } class A2<E>{ //使用泛型的类 } class B2<E extends Number>{ // } class C2 extends A2{ //Warning:A2 is a raw type. References to generic type A2<E> should be parameterized //编译器:A2 是原始类型. 泛型 A2<E>的引用应该被参数化 } class D2<T> extends A2<T>{ //正确,泛型与名字无关 } class E2 extends A2<E>{ //编译出错:E cannot be resolved to a type //编译器:E 不能是一个类型 /* 此处解决方法有二种: * 一种是对E2加上泛型描述符, * 另一种是创建E的类,而这种方式实际上就是对于泛型的实现了 * 例如:class _E2 extends A2<Object>{} * 是可以通过编译的。 */ } class F2<E> extends A2{ //这个与C2的情况一样 } class G2<T> extends A2<E>{ //这是错误的情况,因为E丢失了 } class _G2<T> extends A2<String>{ //同样的道理(见E2),这样却是可以的 } class H2<E,T> extends A2<E>{ //泛型的扩充,也是可以的 } /*-------------------------------------*/ class I2<E> extends B2<Number>{ //这也是实现+新泛型 } class J2<T extends Number> extends B2<T>{ }
还有很多可以挖掘的地方,不过那应该在泛型的研究中去深挖,而此处就点到为止了...
接口的话,这里是类似的。
相关文章推荐
- Java中类继承、接口实现的一些细节(长期更新)
- Java中类继承、接口实现的一些细节(长期更新)
- Java类中继承、接口实现的一些细节
- Java中类继承、接口实现的一些要注意的细节问题
- JAVA实验三 抽象类的继承和接口的实现 (多态)
- JAVA中如何用接口实现多继承和多态 (非常好)
- 【Java多线程学习】Java多线程的两种实现方式:继承Thread类 & 实现Runable接口
- 纯作业代码——Java实现接口、继承
- JAVA多线程实现的三种方式(继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程)
- Java中继承thread类与实现Runnable接口的区别
- Java中继承thread类与实现Runnable接口的区别
- Java中继承thread类与实现Runnable接口的区别
- 【Java面试题】60 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法?
- 牛客网Java刷题知识点之Java为什么不能支持多继承,但可以用接口来间接实现多继承
- Java 接口 实现 和继承关系
- java实现接口与继承的关系
- Java进阶(九)接口实现Java多重继承的梦
- 【Java面试题】13 Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
- java内接口,抽象类,继承实现的一些基础知识和实例
- Mono 继承一些特殊接口中带有 IJavaObject, IDisposable 接口的实现方法