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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© WENZISUN 中级黑马   /  2013-12-20 23:11  /  1222 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 WENZISUN 于 2013-12-21 15:14 编辑

有关接口还是很迷惑啊

评分

参与人数 1技术分 +1 收起 理由
陈福军 + 1

查看全部评分

6 个回复

正序浏览
1.接口是一种规范。
2.只要一个类继承了一个接口,这个类就必须实现这个接口中所有的成员
3.为了多态。接口不能被实例化。也就是说,接口不能new(不能创建对象)
4.接口中的成员不能加“访问修饰符”,接口中的成员访问修饰符为public,不能修改。
5.(默认为public)接口中的成员不能有任何实现(“光说不做”,只是定义了一组未实现的成员)。
6.接口中只能有方法、属性、索引器、事件,不能有“字段”和构造函数。
7.接口与接口之间可以继承,并且可以多继承。
8.接口并不能去继承一个类,而类可以继承接口  (接口只能继承于接口,而类既可以继承接口,也可以继承类)
实现接口的子类必须实现该接口的全部成员。

9.一个类可以同时继承一个类并实现多个接口,如果一个子类同时继承了父类A,并实现了接口IA,那么语法上A必须写在IA的前面。
10.class MyClass:A,IA{},因为类是单继承的。

11.显示实现接口的目的:解决方法的重名问题什么时候显示的去实现接口:
当继承的借口中的方法和参数一摸一样的时候,要是用显示的实现接口
12.当一个抽象类实现接口的时候,需要子类去实现接口。

评分

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

查看全部评分

回复 使用道具 举报
比如你有一个类,类里面有个方法,20个类中都要引用这个方法;突然有一天,要修改这个方法的参数或者相应的字段,那你是不是要修改20处?如果写成接口,只需要修改实现接口的那个方法即可。

评分

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

查看全部评分

回复 使用道具 举报
1.接口是完全抽象的一种约定,在C#语言中,接口是声明类具有的方法和成员的的、自身不能被实例化的、只能被继承的特殊类。
2.  接口就是用来实现的,但是接口里面不包含方法的实现体。
3. 继承接口的任何非抽象类型都必须实现接口的所有成员。
4. 接口自身也可以从多个接口继承。
5.  一个接口可由多个类来实现,,而一个类也可以继承多个接口。
6. 接口的所有成员默认访问级别为public。
7.接口成员只有方法、属性、索引和事件等声明。
接口的声明语法个如下:
         [访问修饰符] interface 接口名 [:父接口列表]
         {
                   //接口成员定义体
      }

评分

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

查看全部评分

回复 使用道具 举报
梦想是否存在 来自手机 中级黑马 2013-12-21 03:48:38
板凳
接口是从多个类中抽象出来的规范,体现的是规范和实现分离的原则,同时也有效的弥补了继承单根性的不足
概念:接口是一个不能实例化,且只能拥有抽象方法的类型。不是类。

评分

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

查看全部评分

回复 使用道具 举报
  ① 接口:接口就是一个规范或者说协议 有了统一的规范就能写通用的代码。接口中其实就是定义了一组具有各种功能的方法。

         ② 接口语法:

         [访问修饰符]interface 接口名(通常以“I”开头)
        {
           //接口成员定义
        }
         

      ③如果一个类既继承了父类又实现了接口,那么类必须写在前面,接口下在下面
      ④接口是一个特殊的抽象类,接口里边只是对方法进行了声明,而没有进行实现也就是说没有方法体,而且不能有任何访问修饰符 但默认为public。
     ⑤接口声明不包括数据成员,只能包含方法、属性、事件、索引等成员。
     ⑥接口一旦被实现,实现接口的任何非抽象类型都必须实现接口的所有成员,而且实现接口的时候不需要用override关键字直接写方法的实现。

评分

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

查看全部评分

回复 使用道具 举报
接口中的成员不能有任何实现.
接口的成员不能有访问修饰符 默认就是public
接口中只能定义索引器 方法 属性(属性不是要自动产生字段么?) 事件  属性里不能有实现
接口的命名规范 I**able 实现这个接口的类 就具有了这样的功能.
接口可以多实现 类只能单继承. 如果同时实现接口又继承 那么父类要写在第一个.
接口的实现类必须实现接口的成员.
接口可以继承接口
接口不能被实例化 因为没有实现
可以把接口成员实现为虚方法或者抽象方法
显示实现接口 只能通过接口来访问...因为显示实现后是private
接口污染 因为接口可以多实现 所以不需要定义多功能接口 因为有些功能不是子类一定要实现的
接口的本质是1个特殊的抽象类..
不能有构造函数.

评分

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

查看全部评分

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