接口 interface 接口的多继承 implements实现 抽象和接口的异同点

来源:互联网 发布:手游客户端数据异常 编辑:程序博客网 时间:2024/04/30 11:15

interface

接口:初期理解,可以认为是一个特殊的抽象类。

当抽象类中的方法都是抽象的,那么该类可以通过接口的形式表示。

作用:功能扩展!

class  用于定义类 

接口定义时,格式特点:

1接口中常见定义:常量,抽象方法;

2接口中的成员都是有固定修饰符。

常量:public static final

方法:public abstract

记住:接口中的成员都是public的。


接口是不可以创建对象的,因为有抽象方法。

需要被子类实现,子类对接口中的抽象发放全部都覆盖后,子类才可以实例化。

否则子类是个抽象类。

interface Inter{public static final int NUM=3;public abstract void show();}class Test implements Inter{public void show(){}}class InterfaceDemo{public static void main (String []args){Test t =new Test();System.out.println(t.NUM);System.out.println(Test.NUM);System.out.println(Inter.NUM);//  X  t.Num = 4  错误,NUM是常量,不能赋值!}}

接口可以被类多实现

是对多继承不支持的转换形式,java支持多实现。(一个类可以同时实现多个接口)


多继承(接口与接口的情况下)

java不支持多继承,但是在接口与接口的情况下,支持多继承!

在类中,以多实现的方法体现出来。


继承 和 接口在多继承上的差异原因

继承:没有多继承,因为父类中肯能存在同名的多个方法,会导致子类调用的不确定。

接口:有多继承,因为父类方法中,没有方法体,只有方法定义,所以重复没有关系。

interface A{void methodA();}interface B {void methodB();}interface C extends B,A  //接口与接口情况下的 多继承{void methodC();}class D implements C//多实现方法体现{public void methodA(){};public void methodB(){};public void methodC(){};}

implements 实现

interface A{public void show();}interface Z{public int add(int a,int b);}class Test implements A,Z//多实现{public int add(int a,int b){return a+b+3;}/**/public void show(){}}

抽象类和接口的异同点:

相同点
都是不断向上抽取而来的。
不同点
1,抽象类需要被继承,而且只能单继承。
  接口需要被实现,而且可以多实现。 
2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。
  接口中只能定义抽象方法,必须由子类去实现。 
3,抽象类的继承,是is a关系,在定义该体系的基本共性内容。
接口的实现是 like a 关系,在定义体系额外功能

abstract class Student{abstract void study();void sleep(){System.out.println("sleep");}}interface Smoking{void smoke();}class ZhangSan extends Student implements Smoking{void study(){}public void smoke(){}}class Lisi extends Student{}class  {public static void main(String[] args) {System.out.println("Hello World!");}}

abstract class Sporter{abstract void paly();}interface study{}class WangWu extends Sporter implements study{public void play(){}}class  demo{public static void main(String[] args) {System.out.println("Hello World!");}}



0 0
原创粉丝点击