【JAVA SE基础篇】30.抽象与接口

1.抽象类和抽象方法(abstract关键字)

1.抽象方法

使用abstract修饰的方法,没有方法体,只有声明。定义了一种规范。其所在的抽象类的子类必须给抽象方法提供具体的实现。

2.抽象类

有抽象方法的类就是抽象类。通过抽象类,我们可以严格限制子类设计,使子类之间更加互通

例:

注:

1.有抽象方法的类只能定义成抽象类

2.抽象类不能实例化,不能通过new来实例抽象类

3.抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用被子类调用

4.抽象类只能用来被继承

5.抽象方法必须被子类实现(重写)。

 2.接口(interface)

接口是比“抽象类”还“抽象”的“抽象类”,可以更加规范的对子类进行规范。全面地专业地实现了:规范和具体实现的分离

抽象类中还有普通的方法,某些具体的实现,而接口中全部都是抽象方法。

接口中的抽象方法的abstract可以省略

例:

接口的本质就是锲约,就是规范。

比如在电脑中,外接鼠标,外接键盘,外接u盘,都是usb接口。

类似的除了usb,还有耳机的3.5毫米,手机的typc ,iPhone的lighting,电饭锅和冰箱的三角插头,这些都可以理解为接口。

放在一台笔记本上形容最合适,一个笔记本就是一个程序,他的usb就是程序的接口,

你可以通过接口来给笔记本扩展功能。

注:接口是可以多继承的,继承多个接口

形式:

【修饰访问符】 interface 【接口名】 extends 【父接口1】,【父接口2】。。。。{

  定义常量;

  定义抽象方法;

}

注:

1.访问修饰符只能是public和默认

2.接口名和类名命名机制一样

3.接口可以多继承

4.接口中的属性只能是常量,总是public static final修饰(默认不写也是)。

5.接口中方法永远是public abstract(默认不写也是)。

接口的实现

1.子类通过interface来实现接口中的规范

2.接口不能创建实例,但是可以用于声明引用变量

3.一个类实现了接口,必须实现接口中所有方法,并且这些方法只能是public

例:

 接口之间的多继承

 接口c继承接口a和接口b的方法,实现接口c的类中必须包含a,b,c三个接口的所有方法

注:

问:JAVA中有没有多继承?

1.java的类没有多继承,只单继承

2.java的接口有多继承

原文地址:https://www.cnblogs.com/chengkuan/p/13159619.html