第一次用 markdown (^-^)V 试试手
1、接口的概念
特殊的抽象类
2、接口的特点
1、实现了类的多继承
2、解耦合
3、增加了程序的通用性
3、接口与抽象类的区别
类别 | 属性 | 方法 |
---|---|---|
抽象类 | 可以不赋值 | 1、作为父类,可以有其他方法2、作为子类,继承关键字为extends(单继承类,多继承接口) 3、其实现的子类,为public |
接口 | 必须赋值 | 1、作为父类,必须是抽象方法(abstract可省略)2、作为子类,继承关键字:implements(可多继承接口)3、其实现的子类,为public |
最后贴上练习代码君:
package com.jacob.javase;
/*
* 接口:
* 1.概念:
* 接口是特殊的抽象类
* 2.关键字
* 3.好处:
* 3.1 增加了程序的通用性
* 3.2 实现了特殊的多继承:
* 例如: 1.手机可以分为拍照手机和通用手机
* 2.照相机可以分为单反照相和数码照相
* 3.那照相又可以分为拍照手机和照相机
* 3.3 解耦合
*
*/
// 2.1 Interface:代替class的书写//
// 注意点:接口中全是抽象方法且 abstract可忽略不写
interface MyIntf1 {
// 属性必须初始化(抽象类不需要)
int id = 1;
String name = "xieji";
public void m1();
void m2();
}
// 2.2.1 extends :接口可以继承接口;相当于并集——不需要覆写父类接口的方法
// 2.2.2 接口可以多继承接口(不能继承类)
// 2.2.3 注意点:子类是接口的时候:关键字只能使用extends
// 子类是类的时候,关键字只能使用implements
interface MyIntf2 extends MyIntf1 {
void m3();
}
// 2.3 implements:类继承接口:类可多继承接口
public class InterfaceTest implements MyIntf2 {
// 2.3.1 需要覆写继承接口的全部方法且访问修饰符必须是public
public void m1() {
System.out.println("覆写m1");
}
public void m2() {
System.out.println("覆写m2");
}
public void m3() {
System.out.println("覆写m3");
}
public static void main(String[] args) {
// 实例化找其子类
MyIntf1 a = new InterfaceTest();
}
}