A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jiahuiting 中级黑马   /  2013-9-23 09:15  /  1806 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 jiahuiting 于 2013-9-23 15:27 编辑

接口的实现与父类继承学完后,晕晕的,感觉好像一样哦。哪位前辈能帮我理下思绪呢。我觉得他们都是在一个类的后面加上,目的都是去用他们里面的方法。

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1 淡定

查看全部评分

5 个回复

倒序浏览
直观的说吧,他们的功能是不一样的。
接口里面之定义了若干个空的方法,然后可以由若干个类去实现它,实现它的这些类都有了这个接口的这些方法,但是不同的类的具体实现却是不同的。
继承是为了复用父类的属性或者方法。

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
我记得接口是继承的完善,一个类只能继承一个父类,却可以实现多个接口,其他的我也晕

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
mplements一般是实现接口。
extends 是继承类。

接口一般是只有方法声明没有定义的,
那么java特别指出实现接口是有道理的,因为继承就有感觉是父类已经实现了方法,而接口恰恰是没有实现自己的方法,仅仅有声明,也就是一个方法头没有方法体。因此你可以理解成接口是子类实现其方法声明而不是继承其方法。
但是一般类的方法可以有方法体,那么叫继承比较合理。
引入包可以使用里面非接口的一切实现的类。那么是不是实现接口,这个你自己决定,如果想用到那么你不是实现,是不能调用这个接口的,因为接口就是个规范,是个没方法体的方法声明集合。我来举个例子吧:接口可以比作协议,比如我说 一个协议是“杀人”那么这个接口你可以用 砍刀去实现,至于怎么杀砍刀可以去实现,当然你也可以用抢来实现杀人接口,但是你不能用杀人接口去杀人,因为杀人接口只不过是个功能说明,是个协议,具体怎么干,还要看他的实现类。
那么一个包里面如果有接口,你可以不实现。这个不影响你使用其他类

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
继承"基类"跟实现"接口"都能实现某些父类的功能,但有些接口能够完成的功能是只用基类无法实现的
接口用来实现功能的扩展,比如男学生女学生都继承父类学生类,继承父类的学习方法,但是男学生还会抽烟,不能在学生类里添加抽烟方法吧,那不是强迫女学生一起抽烟吗,接口这时候就充当了功能的扩展,开发中主要功能用继承,扩展功能用接口
回复 使用道具 举报
一个类在继承的同时还可以实现多个接口,但是继承要注意不存在多继承因为会有安全隐患。在继承的同时还可以去实现接口这样增加了扩展性。接口的多实现弥补了不能多继承的缺陷。
class YunDongYuan//一个运动员的父类
{
        public void yundong()//运动员都要运动
        {
        }
}
interface XueXi//一个学习的接口
{
        public void xuejava();
}
class LanQiu extends YunDongYuan implements XueXi//一个篮球运动员属于运动员的子类但是他也可以具备学习的功能
{
        public void yundong()
        {
                System.out.println("打篮球");
        }
        public void xuejava()
        {
                System.out.println("学Java");
        }
}
class Demo
{
        public static void main(String[]args)
        {
                LanQiu lq = new LanQiu();
                lq.yundong();
                lq.xuejava();
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马