美文网首页
面向对象--interface

面向对象--interface

作者: 关先生的IT博客 | 来源:发表于2016-10-10 02:07 被阅读0次

接口

java只支持单继承,例如猪是食物,猪还是动物,我要完成这个多继承的关系, 只时候,我们需要用到接口

  • 接口(interface)是抽象方法和常量值的定义的集合
  • 从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现.
  • 接口定义举例:

public interface Runner { public static final int id = 1; public void start() ; //接口中不用谢abstract,但是都是方法. public void run() ; public void stop(); }//为什么要定义成public static final?C++中多继承关系中存在多个父类对象中的相同的成员变量,容易出现问题,java中要去避免这种情况,放到static中.


接口特性

  • 接口可以多重实现
  • 接口中声明的属性默认是public static final的,也只能是这三个.
  • 接口中只能定义抽象的方法,这些方法默认是public的,也只能是public的.(为了避免C++中出现的问题)
  • 接口可以继承其他的接口,并添加新的属性和抽象方法.
  • 多个无关的类可以实现同一个接口
  • 一个类可以实现多个无关的接口
  • 与继承关系类似,接口与实现类之间存在多态性.
  • 定义Java类的语法格式

接口举例


interface Singer { public void sing(); public void sleep(); } //定义一个能唱歌的东西,不同种类的不确定,所以用抽象 class Student implements Singer { //因为以上用的是interface,不能extends private String name; Student(String name) { this.name = name ; } public void study() { System.out.println("studying"); } public String getName() (return name;) public void sing() { System.out.println("student is singing"); } public void sleep() { System.out.println("student is sleeping"); } } //存在继承关系,存在重写,如果在存在父类对子类对象的应用,则为多态.


interface Singer { public void sing(); public void sleep(); } //定义一个能唱歌的东西,不同种类的不确定,所以用抽象 interface Painter { public void paint(); public void eat(); } class Student implements Singer { //因为以上用的是interface,不能extends private String name; Student(String name) { this.name = name ;} public void study () {System.out.println("studying"):} public String getName() (return name;) public void sing() { System.out.println("student is singing"); } public void sleep() { System.out.println("student is sleeping"); }
class Teacher implements Singer,Painter{}
//所有的方法要全部实现,重写.
存在多态关系的时候,所有方法的重写在code segment里,而字符串变量和静态变量储存在data segment里面.实现动态引用(为一个函数指针C++);
这个部分可以看作多态的延伸.
每个接口对应的是部分的方法.
f(singer s) {
s.sing();
} //注意这个时候这个方法,无论是调用student 还是tercher,都可以.但是要重写这个方法.多态的实现.所以接口是那个抽象的类,多重继承,也没有C++的毛病.


使用接口我们实现了多继承性,实现多继承性,打好多态的基础.无论属性再多,永远要记得,继承性.重写,按部就班.

Interface Comparable

compareto 比较对象的大小.输出一个返回值.
我先定义一个方法,实现这个接口之后比较所有的大小,无视类型,排序,扩展性.

相关文章

  • 面向对象--interface

    接口 java只支持单继承,例如猪是食物,猪还是动物,我要完成这个多继承的关系, 只时候,我们需要用到接口 接口...

  • 面向接口编程与策略模式

    面向接口编程 & 面向对象编程 Interface-based programming, also known a...

  • Go语言之Interface(一)

    Go语言之Interface(一) 什么是interface 在面向对象语言中接口是:接口定义了一个对象的行为,但...

  • Go语言之Interface(一)

    Go语言之Interface(一) 什么是interface 在面向对象语言中接口是:接口定义了一个对象的行为,但...

  • 面试题集六

    typescript是js类型的超集 1. interface定义: 在面向对象语言中,interface是对行为...

  • Java-面向对象-接口interface

    接口的由来 抽象类中可以定义抽象方法的 。当一个抽象类中的方法全是抽象的。这时,可以通过另一种特殊的形式来体现。 ...

  • android 源码设计模式(总结)

    1.面向对象6大原则 solidd(single, open, lishi, interface, 1 单一职责...

  • 03-OC、封装

    一、封装 面向对象的三大特征:封装、继承、多态。在OC中,使用 @interface 和 @implementat...

  • 深入理解interface

    interface是PHP面向对象编程一个非常重要的概念 主要是为了作为接口而存在的一个概念 interface其...

  • golang学习笔记--Interface

    什么是 Interface 在面向对象的世界中,接口的一般定义是“接口定义对象的行为”,即只定义对象的行为,至于对...

网友评论

      本文标题:面向对象--interface

      本文链接:https://www.haomeiwen.com/subject/lfpmyttx.html