接口,什么是接口,在什么情况下使用接口?这些问题在学习完接口之后才懂得了这些疑问所要找的答案。
1: 接口的概念;接口也城界面,就是方法定义和常量值得集合,引入接口的目的是为了克服java中的单继承带来的缺陷,我们在上周学习了继承这一个知识点,要知道java继承是单继承,也就是说一个子类只能有一个父类,而一个父类可以派生出多个子类,它并不是多重继承的,这样就有很大的局限性,而接口正好弥补了这一缺点,它可以实现类的多继承的功能,接口在语法上类似于一种结构,但是接口与类又有很大的区别,它只有常量和方法声明。没有变量和方法的实现。
2:接口的定义:接口可以用来实现不同类之间的常量共享,接口可以看成是一种特殊的类,只定义方法的原型,而不是直接定义方法的内容,定义接口用interface,接口的定义基本格式如下
interface <接口名>
3:接口的实现:接口在定义之后就可以实现接口,在类中实现接口用关键字implements,接口实现的基本格式如下
class <类名> extends <父类> implements <接口>
4:接口注意点:在类中实现接口时,方法必须声明为public ,并且方法有名字,返回值类型,参数的个数以及类型必须与接口中的完全一致,并且必须实现接口中的所有方法。
接口的成员变量都是默认的public static finial修饰的
接口中的方法都是抽象方法,默认修饰的是public abstract
一个类可以实现多个接口
接口不能够被创建对象
接口没有构造方法
5:接口的作用
(1)扩展功能
(2)定义约束规范
(3)程序解耦合性
6:类和接口之间的关系
通过类来实现接口
当一个非抽象类在实现接口的时候,必须实现所有的方法。
当一个抽象类在实现接口的时候可以实现也可以不实现接口中的方法。因为抽象的子类来实现
7:接口与接口之间的关系
在java中,类是单继承的,一个类只有一个直接父类。
接口也可以继承,但它是多继承的,也就是一个接口可以继承多个接口。
下面有一个代码案例来体现接口在代码中的应用
public interface Person{
//父接口public String getName();
}
interface Programmer extends Person{
//将程序员作为接口而且继承父类
public void writeProgram();
}
//他具有写代码的能力
public void giveBizSpeech();
//同时他具有讲业务的能力
}
class SoftEngineer implements Programmer,BizAgent{
//软件工程师来实现这两种能力
public SoftEngineer(String name){
this.name = name;
}
public String getName(){
return name;
}
public void giveBizSpeech(){
System.out.println("我会讲解业务");
}
public void writeProgram(){
System.out.println("我会写代码");
}
}
class Test
{
//测试类
{
SoftEngineer xiaoMing = new SoftEngineer("小明");
System.out.println("我是一名软件开发工程师,我的名字是" + xiaoMing.getName() + "。");
xiaoMing.writeProgram();
xiaoMing.giveBizSpeech();
}
}