社区
Java SE
帖子详情
java没有多继承,用接口来实现多继承的功能,但哪里体现了多继承啊?我对接口的概念一直弄不清楚,请大家帮忙!
climber
2000-08-19 10:00:00
加精
...全文
448
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的一个基本特色。
:)
java
进阶)
继承
,
接口
嵌套类,异常
针对已经学过"
java
大数据培训学校全套教材"前面课程的同学,(即已有
java
语法基础和面向对象基础的同学),本专题学习将起到承上启下的作用。 本专题覆盖
继承
,
接口
嵌套类,异常,从难度和重要程度来讲,都处于中等位置 ,为之后的高级应用打下基础。
微服务系列第九季-
Java
中的封装、抽象类、
接口
和多态
微服务应用是分布式开发的主要手段,它很好的解决了高并发等电商平台的问题。微服务系列课程是以
Java
语言为基础,以SpringCloud+SpringBoot为核心,结合Spring、SpringMVC及MyBatis,通过游戏案例、电商案例,以极简的方式,带领入门的朋友们快速上手微服务开发。全部案例源码分享给学习的朋友,案例采用敏捷开发管理模式,让朋友们在每一个阶段,有着游戏过关一样的学习体验。 第九季主要是给大家介绍一下:
Java
中封装的
概念
及步骤、
Java
封装类、
Java
抽象类的
概念
、
继承
抽象类、抽象方法、
接口
的
概念
、
接口
的声明与
实现
、
接口
的
继承
、多态的
概念
、多态的应用举例。
Java
大数据培训学校全套教程--
继承
java
大数据培训学校全套教材系列课程由750集视频构成,基本就 是1)时下流行的
java
培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个
java
工程师的工作了。 本门课程为
java
大数据培训学校全套教材系列课程的第四篇,通过学习
继承
,超关键字,隐藏,覆盖,抽象方法和抽象类,多态,Object Class,
java
的垃圾回收与内存泄露的关系,数据封装类,Math 类等相关
概念
,让大家对
继承
编程 打下好的基础 课程特色:专业细致,偏案例,理论强,多作业。 课程软件使用:最好为myeclipse6.01,因为可以省去安装jdk了。否 则jdk1.2到10都可以,eclipse不限版本。
java
大数据培训学校全套教材--4)
继承
java
大数据培训学校全套教材系列课程由750集视频构成,基本就 是1)时下流行的
java
培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学 校一次,完全可以找个
java
工程师的工作了。 本门课程为
java
大数据培训学校全套教材系列课程的第四篇,通过学习
继承
,工具类等相关
概念
,让大家对
继承
编程 打下好的基础
微服务系列第七季-
Java
面向对象中的
继承
微服务应用是分布式开发的主要手段,它很好的解决了高并发等电商平台的问题。微服务系列课程是以
Java
语言为基础,以SpringCloud+SpringBoot为核心,结合Spring、SpringMVC及MyBatis,通过游戏案例、电商案例,以极简的方式,带领入门的朋友们快速上手微服务开发。全部案例源码分享给学习的朋友,案例采用敏捷开发管理模式,让朋友们在每一个阶段,有着游戏过关一样的学习体验。 第七季主要是给大家介绍一下
Java
面向对象中的
继承
,包括:
继承
的
概念
、为什么要
继承
、
继承
的类型及特性、extends关键字、final关键字、implements关键字、super和this关键字、子类中如何调用父类中的有参、无参构造方法。
Java SE
62,615
社区成员
307,307
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章