八、MyBatis(二)
1. 接口
(1)类是类,接口是接口。
(2)接口:定义规则。实现类:实现接口,实现规则。
(3)接口:用interface来表示。
(4)在JDK1.8之前,接口中的内容:常量、抽象方法。
(5)实现类实现接口,利用implements关键字。
(6)实现类实现接口后,重写接口中定义的抽象方法。
(7)接口不能创建对象,需要用接口指向实现类的形式创建对象。(多态的形式)
public interface Speak { //接口//常量:它的数值不能改变,一旦给定了值以后就不能更改。//接口中的常量的修饰符:public static final,如果在接口中,可以省略。//约定俗成的规定,一般定义常量的时候,名字全部大写。/* public static final */ int AGE = 18;//抽象方法//在接口中,public abstract可以省略/* public abstract */ void say();}
public class Chinese implements Speak{ //实现类实现了接口,实现具体的规则//重写@Overridepublic void say() {System.out.println("中国人打招呼:你好,干嘛去?");}
}
public class American implements Speak{@Overridepublic void say() {System.out.println("say hi..say hello...");}
}
public class Test4 {public static void main(String[] args) {//接口能创建对象:不可以
// Speak s = new Speak();//可以创建实现类的对象:Chinese ch = new Chinese();ch.say();//调用方法System.out.println(ch.AGE);//访问常量American am = new American();am.say();System.out.println(am.AGE);//通过接口实现多态://接口=实现类:Speak s = new Chinese();s.say();//表面上调用的是接口的say方法,实际上走入到了实现类中的say方法中/*** 多态三要素:* 1.继承关系 ===== 接口+实现类* 2.方法重写 =====重写* 3.父类引用指向子类对象 ====== 接口指向实现类对象*/System.out.println(Speak.AGE);}
}
2. 接口和继承的区别
继承:子类对父类的继承,提高代码的复用性。“is-a”的关系。
实现:实现类对接口的实现,实现规则。“has-a”的关系。