社区
Java SE
帖子详情
java没有多继承,用接口来实现多继承的功能,但哪里体现了多继承啊?我对接口的概念一直弄不清楚,请大家帮忙!
climber
2000-08-19 10:00:00
加精
...全文
439
10
打赏
收藏
java没有多继承,用接口来实现多继承的功能,但哪里体现了多继承啊?我对接口的概念一直弄不清楚,请大家帮忙!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sunni
2001-09-18
打赏
举报
回复
interface可以模拟多继承,可是继承的只是接口,代码还要重新写
xiaoya2001
2001-07-25
打赏
举报
回复
其实,接口和类的区别要两者的功能来考虑
一般接口在编程中不常用,因为没有多少意义,方法在类中定义就够了
接口的最重要的功能是继承一些特殊对象(如RemoteObject等),使得
继承该接口的类具有操作远程对象的功能(详见RMI编程),此外,接口
具有和环境交互的功能。
Mail:xingf2001@sina.com.cn
Tommy Chang
2000-08-30
打赏
举报
回复
其实书本上C++里面的多重继承确实要比这种相对较简单的定义和实现分开的方法更灵活,但是对于一个系统,越多的多重继承应用要付出越多的代价来组织和管理代码,而且大多数情况下,不一定要用多重继承才能实现特定的功能,不一定能大幅提高开发效率......。开发人员始终根据开发的应用层次不同,而要分多个方向,目前java从底层到高层虽然都有相应的产品或规范,但是仍然需要c++等其他开发平台或语言来配合。java推出已经有四年了,但是多重继承方面是从1.1.x后更强调interface的用途,没有模仿传统c++多重继承再作扩展了。
面向对象各个方面中突出强调多重继承的人也不多见,多态恐怕才是大家最要用的东西。
对于java这样一个跨平台面向对象的平台,抛弃传统多重继承,开辟interface这条路,确实有他的道理,因为java是为了方便人编程,而且易管理,还要跨平台。我个人看法,java抛弃旧的多重继承办法跟当初抛弃指针一样,都是顺应java的思想。
(BTW,java底层的理论有许多,在下接触不到,但想当年看过一位老先生的话,在java里面实现跟c++一样的多重继承,其实比当初在c++实现还要方便。就好象有的事情不是能不能作的问题,而是这样作好不好)
希望朋友们多多指教。
:)
oicq: 1766598
mail: cxgtommy@sina.com
allan
2000-08-29
打赏
举报
回复
但用interface实现的只是接口的多重继承,要想实现真正的多重继承,恐怕还得用内部类吧。版主,是吧?
元明
2000-08-29
打赏
举报
回复
接我的上贴:
举个例子,附:
//Home.java
import java.util.*
interface(关键字) Home {
int pzz = 4;
void desk();
String chair();
}
class Zhang implements Home { //实现接口后,此时我们获得了一个
public void desk() { //普通类"Zhang",以后如果继承此
System.out.println("Zhang.desk()"); //类,我们可对它进行扩展.
} //implements是一个关键字
public Sring chair() {
return "Zhang";
}
}
class Li implements Home {
public void desk() {
Systiem.out.println("Li.desk()");
}
public String chair() {
return "Li";
}
}
可以将接口想像为"纯"抽象类,可以定义方法名,自变量列表,返回类型,但不规定方法的主体.接口中的基本数据类型(就是系统定义的标识符,如:int,boolen)都默认为static 和 final,方法默认为public,即使不加public关键字.
关于多重继承,java规定:如果确实想从一个非接口继承,那么只能从一个继承.如:
//Deer.java
import java.util.*
interface SporttedDeer {
void antler();
}
interface RedDeer {
void deerskin();
}
class Giraffe {
void anler() {
System.out.println("Giraffe.anler");
}
}
class Deer extends Giraffe implements
SporttedDeer, RedDeer {
void deerskin() {
System.out.println("Deer.deerskin");
}
}
使用接口能上塑造形至多个基础类.
不知我举的几个简单的例子你理解了没有?你可以上机调试一下.
元明
2000-08-28
打赏
举报
回复
接口其实也是一种类,不过比抽象类更进了一步,Java不允许我们直接定义接口类的对象,只能通过一个实现类中定义的方法去覆盖接口类中的方法.
哦,不行了今天没时间了,明天我接着答复,OK!!
Tommy Chang
2000-08-22
打赏
举报
回复
event和listener本身就是定义成接口的,如何触发,如何响应,原理就两页纸,但是要明白真正的用途,恐怕还是要看看别人的书或自己动手。
想用好event & listener的话,最好的教材就是applet的教材,一定是jdk1.1.x以上的版本。
:)
javabean既然起这个名字,而且个人网站内容不错,肯定是个中高手,leslielu不防请教下他老人家。
my oicq: 1766598
mail: cxgtommy@sina.com
leslielu
2000-08-21
打赏
举报
回复
cxgtommy:
给讲讲吧。
Event & Listener就是interface的极好应用,它的机制你知道吗?这可是javabean的一个基本特色。
javabean
2000-08-19
打赏
举报
回复
所谓的接口,实际上也是一个类,只是在接口中声明了一组常量和方法,但事实上没有实现任何方法。这有点类似抽象类,接口需要其他类来提供实现自己所定义方法的过程,而不是自己提供。
这里的用接口实现多继承实际上就是可以用类来实现多个接口中的方法。如下:
class Triangle implements Brushes,Paints,Surface {
……
/*every method in Brushes、Paints and Surface must be implemented in Triangle */
……
}
另外,如果需要extends从句,则implements从句应放在extends从句的后面。比如:
class Triangle extends MyGraphics implements Brushes{
……
/* every method in Brushes must be implemented here */
……
}
就这样,不知对你有没有帮助,其实我也不是很懂,有机会我们再一同探讨,OK?
Tommy Chang
2000-08-19
打赏
举报
回复
如果你能讲出虚类和接口之间区别和联系的话,相信这个问题已经得到答案。
给你再添个问题,Event & Listener就是interface的极好应用,它的机制你知道吗?这可是javabean的一个基本特色。
:)
Think in
Java
(中文版)-chm格式
1.5 继承:重新使用
接口
1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 抽象的基础类和
接口
1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 ...
java
接口
实现
多继承
_
Java
接口
多继承
按照理解,一般都是说
Java
类是单继承,但可以
实现
多个
接口
。但是可以通过
接口
来
实现
类的
多继承
。(如何通过
接口
来
实现
多继承
???)那么就
一直
以为
Java
里面是单继承,今天看FutureTask源码的时候发现,
接口
居然可以...
Java
支持
多继承
吗?
Java
中,类不支持
多继承
。
接口
的作用是拓展对象
功能
。当一个子
接口
继承了多个父
接口
时,说明子
接口
拓展了多个
功能
。当一个类
实现
该
接口
时,就拓展了...
Java
提供了
接口
和内部类以达到
实现
多继承
功能
,弥补单继承的缺陷。
Java
中
多继承
的
实现
2 方法多层继承如果要直接继承类,子类是不可以直接
多继承
的,但是可以通过多层继承来
实现
多继承
,但多层继承一般不建议超过三次。
接口
接口
可用于继承也可用于其它,比较灵活。定义类
实现
接口
,需要
实现
其所有父
接口
...
Java
继承
实现
多个
接口
学习
文章目录任务一、创建笔记本计算机类(继承一个类,
实现
多个
接口
)(一...
Java
简化了C++的多重继承,是单根继承,只能继承一个类,但是作为补偿,
Java
允许
实现
多个
接口
,让一个类可以
实现
更多的特性。 继承一个类,
实现
Java SE
62,612
社区成员
307,332
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章