接口——使用Java面向对象编程

第四章 接口

一、什么是接口?

接口同样是哟中规范和标准,题目可以约束类的行为,是一些方法特征的集合,但是没有方法的实现。

接口可以看做一种特殊的“抽象类”,但是差异与抽象类万千不同的语法来表示,两者的设计观念也是不同的,抽象类利用与代码复用,接口利于代码的扩展和维护

二、接口的语法

定义接口

[修饰符] interface 接口名 extends 父接口1,父接口2,·········{
    	//常量定义
    	//方法定义
}

​ 类实现接口

class 类名 extends 父类名 implements 接口1,接口2,······{
    	//类成员
}
接口定义的规则:
  • 接口的命名规则与类相同。如果修饰符是public,则该接口在整个项目中可见;如果是省略修饰符,则该接口只在当前包可见。
  • 接口中可以定义常量,不能定义变量。接口中的属性都会自动用 public static final 修饰,即接口中的属性都是全局静态常量。接口中的常量必须在定义时制定初始值。
public static final int PI=3.14;
int PI=3.14;	//在接口中,这两个定义语句效果完全相同
int PI;			//错误!在接口中必须制定初始值,在类中会有默认值
  • 接口中所有的方法都是抽象方法。接口中的方法都会自动用 public abstract 修饰,即接口中只有全局抽象方法。
  • 和抽象类一样,接口也不能实例化,接口不中不能有构造方法。
  • 接口之间可以通过 extends 实现继承关系,一个接口可以继承多个接口,但接口不能继承类。
  • 接口的实际类必须实现接口的全部方法,否则必须定义为抽象类。

三、接口表示一种能力:体现在接口的方法上

关心实现类有何能力,而不关心实现细节
面向接口的约定而不考虑接口的具体实现

四、面向接口编程

​ 在面向对象编程中提倡面向接口编程,而不是面向实现编程。

​ 接口体现了约定和实现相分离的原则,通过面向接口编程,可以降低代码间的耦合性,提高代码的可扩展性,面向接口编程就意味着开发系统时,主题结构使用接口,接口构成系统的股价,这样就可以通过更换实现接口的类来实现更换系统

​ 面向接口编程可以实现接口和实现的分离,这样做最大的好处就是能够在客户端位置的情况下进行修改代码。

​ 良好的接口定义一定是来自于需求的,它绝对不是程序员绞尽脑汁想出来的

五、在C#中使用接口

​ C#的接口语法和java相似

定义接口

[修饰符] interface 接口名: 父接口 1,父接口 2,······{
    属性定义
    方法定义
}

实现接口

class 类名:父类名,接口1,接口2······{		}
接口区别
  • java中接口通过 extends 来继承接口,类通过 implements 来实现接口;C#中通过冒号 “ : ” 来实现这两个功能
  • java接口中的成员变量(属性)都是常量,自动用 public static final 修饰;C#接口中不允许存在成员变量,但可以有属性。
  • java接口中的属性和方法都可以使用 public 修饰;C#中默认用 public ,但不允许显式使用 public 修饰
  • java接口中可以定义静态常量和方法,C#接口中不允许包括任何静态成员

六、总结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Smu30Hqi-1622174997929)(D:\jiang\AppData\Roaming\Typora\typora-user-images\image-20210528120030918.png)]
口中可以定义静态常量和方法,C#接口中不允许包括任何静态成员

六、总结

]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顾拾柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值