百知教育学习 -胡鑫喆 -接口
-
接口 :特殊的抽象类
- 1.属性都是公开静态常量 public static final 三个修饰符可以不写 如
int A=10
- 2.方法都是公开抽象方法 public abstract 两个也可以不写 如
void m1();
- 3.没有构造方法,不会提供默认也不能自己写。 所以同样内容的类.class文件大小比接口.class文件多,多了默认的构造器
- 1.属性都是公开静态常量 public static final 三个修饰符可以不写 如
-
类和接口编译都会生成.class文件 共有四种编译会生成.class文件,分别是 标注、枚举、类、接口
-
实现接口
implements
:-
举例
class MyClass implements IA{}
MyClass叫做接口的实现类 -
一个类实现接口,如果这个类不希望成为抽象类,就必须实现接口中所有的抽象方法
-
interface IB{
int A=10;
double B=2.50;
void m1();
void m2();
}
class MyClass implements IB{
public void m1();
//接口的实现类中 接口方法的实现 的修饰符必须是public
public void m2();
}
-
-
-
接口之间可以定义多继承关系
一个类在继承另外一个类的同时,还能实现多个接口 如
class MyClass extends IA implements IB,IC{}
-
多继承的复杂性:
- 子类引用可以直接赋值给父类引用
- 父类引用需要强转才能赋值给子类引用
- 没有继承关系的两种类型之间不能强转赋值
- 强转的两种类型中,如果包含接口类型,强转代码一定编译通过
-
接口并不是为了多继承而出现的
-
耦合 : 指的是对象与对象之间的关系 关系松散叫做弱耦合 关系紧密叫做强耦合
java接口就是为了实现面向对象的弱耦合性
接口作为标准,使接口的使用者和接口的实现者分离,实现弱耦合关系。接口的好处:利于分工,利于维护
A–>B强耦合 A—>L(接口)—>B 弱耦合
-
接口回调:程序员负责实现接口,从而实现接口中的方法,而不用关心方法何时被谁调用
-
普通接口
-
常量接口:没有抽象方法
-
interface Const{
int A=10;
double B=2.5;
}
调用就用Const.A;
-
-
空接口(标记接口):
interface Empty{}
没有抽象方法-
class Animal{}
class Dog extends Animal implements Pet{}
class Cat extends Animal implements Pet{}
class Tiger extends Animal implements Pet{}
class Fish extends Animal implements Pet{}
interface Pet{}
标记接口用来标记某个类
-
-
缺省适配模式 :提供一个接口还有配套的抽象方法
你有两种选择
一、继承抽象类:1.缺点:你这个子类失去继承的机会。2.优点:你可以挑自己有用的方法实现,没实现的还默认为抽象类中的方法
二、连接接口: 1.缺点:无论你是否需要里面所有的方法,你都必须重写 2.优点:你还有一次继承机会,可以继承别的类
-
interface IA{
void m1();
int m2();
String m3();
}
abstract class AbstractA implements IA{
public void m1(){}
public int m2(){
return 0;
}
public String m3(){
return null;
}
}
-