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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 雪雨飞飞 中级黑马   /  2014-7-12 12:11  /  1436 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 雪雨飞飞 于 2014-7-13 09:29 编辑

请问接口与抽象类有那些相同和不同的地方?哪些情况下使用接口比较好,而哪些情况下使用抽象类比较适合呢?请总结一下,谢谢!

点评

视频里讲的很清楚呀,自己总结下吧  发表于 2014-8-6 19:29

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

13 个回复

倒序浏览
抽象类与接口:都是包含可以由派生类继承的成员,他们都不能直接实例化,但可以声明其变量。        抽象类与接口他们之间有什么区别,通过2者的比较更深一步的了解,记忆:                    1.他们的派生类只能继承一个基类,即只能直接继承一个抽象类,但可以继承任意多个接口。                    2.抽象类中可以定义成员的实现,但接口中不可以。                    3.抽象类中可以包含字段,构造函数,析构函数,静态成员或常量等,但接口中不可以。                    4.抽象类中的成员可以是私有的,但接口中的成员必须是公共的。

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
偷偷告诉楼主这个有可能会考的哦,记好哦    (*^__^*)
回复 使用道具 举报
二、抽象类        1、虚方法与抽象方法
                抽象方法用abstract 修饰,虚拟方法用virtual 修饰;
                抽象方法不能有方法体,抽象方法必须在抽象类中,抽象方法不能实例化;
                子类中无法通过 base 关键字 调用父类的抽象方法;抽象方法光说不做,只是定义具有这样的行为,                        但是具体实现交给子类,而虚方法有实现;
        2、抽象类
                抽象类中可以存在非抽象成员,抽象类的目的是更好的继承,从而实现多态;
                子类必须重写父类,父类没有必要实例化,就用抽象类;
                抽象类是有构造函数的,如果没有显式定义,编译器自动生成一个无参构造函数,虽然不能被实例化                ,但是要被子类对象调用,并初始化抽象类成员;
                抽象类成员不能是私有的,私有的子类访问不到,无法重写;
                抽象类中可以有虚方法;

三、接口
        命名规范:I**able,例如IFlyable ,IComparable ;使用 interface 关键字定义接口。
        接口表示具有某种能力,是一个特殊的抽象类:
                1、所有成员默认都是抽象的;
                2、不能有访问修饰符,默认是        public,不能被实例化;
                3、实现类在实现接口成员时,不写 override (抽象方法和虚方法重写的时候都要写 override );
        接口中可以定义的成员有属性、方法、索引器、事件。实现接口的类必须实现接口中的所有成员,可以用        快捷键Alt+Shift+F10 ,接口名字处快速实现所有成员;
        实现成员时必须保证签名一致;接口就是纯粹为了规范实现类;自动属性不是自动属性(prop + 两次        Tab),只是普通属性,get、set 方法不实现;
        接口很好的解决了类的单根性,一个类只能有一个父类,写在第一位,但是却可以实现多个接口。
        接口可以继承接口,支持多继承。


        抽象类与接口的区别:
        1、可以找到父类并且希望通过父类继承给子类一些成员时,用抽象类
        2、多个类具有相同的方法,但却找不到共同的父类,就可以将某个类特有的方法定义在接口中。比如,鸵        鸟与麻雀,同样是鸟类,但是鸵鸟不会飞,麻雀会飞,这时可以定义一个 IFlyable 接口,接口里面有一个        Fly() 方法,让麻雀来实现该接口。


评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
渐渐的起飞 发表于 2014-7-12 12:25
偷偷告诉楼主这个有可能会考的哦,记好哦    (*^__^*)

哈哈,:hug:再多说说哪些也可能要考吧{:3_64:}
回复 使用道具 举报
雪雨飞飞 发表于 2014-7-12 14:48
哈哈,再多说说哪些也可能要考吧

问题解决了,就提交
回复 使用道具 举报
雪雨飞飞 发表于 2014-7-12 14:48
哈哈,再多说说哪些也可能要考吧

问题解决了,就提交
回复 使用道具 举报
渐渐的起飞 发表于 2014-7-12 23:25
问题解决了,就提交

{:3_65:}好吧!
回复 使用道具 举报
渐渐的起飞 发表于 2014-7-12 23:24
问题解决了,就提交

{:3_60:}好吧!
回复 使用道具 举报
感觉你们一个比一个牛气啊
回复 使用道具 举报
看基础加强视频吧!
回复 使用道具 举报
Flora_Woo 发表于 2014-8-6 19:31
看基础加强视频吧!

现在已经明白了,谢谢
回复 使用道具 举报
路过 学学习习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马