千锋java学习第四周总结

新的一周又过去了  ,该对这一周知识做一个总结了

接口,现实生活中接口很多人会想到Usb接口,它的作用起到了连接的作用。

在程序中也是一个连接的作用,而当你能够连接的东西越多,相对来说耦合度就越低,连接的东西越少,耦合度越高

接口与抽象类的区别:

不同点:
1、接口可以多实现,而抽象类只能单继承
2、抽象类可以有非抽象的方法和构造方法、变量,但是接口只能有抽象方法,静态常量。
3、抽象类和子类具有父子关系,子类能拥有父类中一些属性。接口虽然某个类实现一个接口,但是由于接口中的变量都为静态常量,不存在继承关系。

4、接口中的属性只能是公开静态常量(隐式使用public static final修饰)

5、2). 接口中的方法只能是公开抽象方法(隐式使用public abstract修饰)

相同点:
1、无论接口还是抽象类,都无法直接实例化,其自身实例化需要靠实现类或子类来实现。
2、接口和抽象类都必须实现其中的所有方法。

接口不是类,尤其不能使用new运算符实例化一个接口。但是可以声明接口的变量,这个变量可以指向实现了此接口的实现类。

接口书写方法

public interface Interface
{
  public static final int i; //public和static和final位置顺序可以换,在接口中也可以不写,隐式存在
  

   public void method1(); //接口中的方法一定是抽象方法,所以不用abstract修饰
  
}

微观和宏观看接口:

微观:

接口是种能力和约定:接口的定义:能力

                                    方法的定义:约定

宏观:

接口是一种标准。

耦合度:模块与模块之间的关联程度,关联的越密切,耦合越高,关联的越松散,耦合越低。

接口的规范:

任何类在实现接口时,必须实现接口中所有的抽象方法,否则此类为抽象类。(和继承相似,如果子类没有覆盖父类中的抽象方法,那么子类只有定义为抽象方法,举例(父类为动物,子类为猫,而猫的下面还有各种类型的猫,如短耳猫,波斯猫......,那么,猫这个类就可以定义为抽象类))

实现接口中的抽象方法时,访问修饰符必须是public。(应为在在接口中方法的访问修饰符为public , 实现类的访问修饰符范围必须大于接口或者和接口相等,所以实现类的访问修饰符必须为public)

接口引用

同父类一样,接口也可声明为引用,并指向实现类对象。(Interface in = new  实现类)

注意:

1). 仅可调用接口中所声明的方法,而不可调用实现类中独有的方法。(和继承相似)

2). 可强转回实现类的本身类型,进行独有的属性和方法的调用。(强转前通过instanceof判断)(强转:实现类 in2 = (实现类)in)

接口的多态:

不再关注具体的类型,而是关注行为(如果关注的是一个类型(船,飞机,车),那么接口的范围就会大大减少,而如果看住的是一个行为(可以漂浮的,可以跑的,可以飞的),这样的话接口的范围将会增加,其耦合度也会降低。)

常见关系

类与类:单继承,extends父类名称

类与接口:多实现,implements 接口名称1,接口名称2,接口名称...3接口名称n

接口与接口:多继承,extends 父接口名称1,父接口名称2...父接口名称n

常量接口:

将多个常用于表示状态和固定值的变量,以形态常量的形式定义在接口中统一管理,提高代码的可读性。

发布了24 篇原创文章 · 获赞 69 · 访问量 1183

猜你喜欢

转载自blog.csdn.net/S9264L/article/details/104582005