接口
- 一.什么是接口
- 二.语法规则
- 三.接口的使用
- 四.实现多个接口
- 五.接口的继承
final关键字
inal修饰的变量,这个变量是不可修改的。final修饰后的方法,禁止子类继承的时候重写方法。final修饰后的类,是禁止被继承的。
super关键字
如果父类(超类)没有默认的构造方法,子类就必须显式调用super(),并且必须使用父类中的某个构造方法的参数。
什么意思呢?
1.就是有一个父类Parent,子类Son,如果我们在Parent中定义了构造函数,那么在继承父类的子类中就必须书写父类的构造函数。那么此时就需要将super()写在子类构造方法中。
2.如果父类中没有定义构造方法,那么编译器会默认是public Parent(){}就是空的,此时在子类中不书写super也不会报错,因为编译器默认生成子类构造方法为空,super()就默认是隐藏的。
3.就是构造函数必须有super(),如果子类中没有super(),那是因为编译器替你干了这个活,它隐藏了super()这个默认的无参构造方法,算是隐式调用。
注意显式二字。
一.什么是接口
在现实生活中,接口的例子比比皆是,比如:笔记本上的USB口,电源插座等。
电脑的USB口上,可以插:U盘、鼠标、键盘…所有符合USB协议的设备。
电源插座插孔上,可以插:电脑、电视机、电饭煲…所有符合规范的设备。
通过上述例子可以看出:接口就是公共的行为规范标准,大家在实现时,只要符合规范标准,就可以通用。
在Java中,接口可以看成是:多个类的公共规范,是一种引用数据类型。
二.语法规则
接口的定义格式与定义类的格式基本相同,将class关键字换成 interface 关键字,就定义了一个接口。
三.接口的使用
接口不能直接使用,必须要有一个"实现类"来"实现"该接口,实现接口中的所有抽象方法。需要使用关键字implements。
注意:子类和父类之间是extends 继承关系,类与接口之间是 implements实现关系。
四.实现多个接口
在Java中,类和类之间是单继承的,一个类只能有一个父类,即Java中不支持多继承,但是一个类可以实现多个接口。
//创建一个动物类
class Animal{
public String name;
Animal(String name)
{
this.name=name;
}
}
//创建几个接口
interface Run{
void Running();
}
interface Swim{
void Swimming();
}
interface Fly{
void Fling();
}
//再实现一个“鸭子”
class Duck extends Animal implements Run,Fly,Swim{
Duck(String name) {
super(name);
}
@Override
public void Fling() {
System.out.println(name+"会飞");
}
@Override
public void Swimming() {
System.out.println(name+"会游泳");
}
@Override
public void Running() {
System.out.println(name+"会跑");
}
}
public class test {
public static void walk(Run run)
{
run.Running();
}
public static void swim(Swim swim)
{
swim.Swimming();
}
public static void fly(Fly fly)
{
fly.Fling();
}
public static void main(String[] args) {
walk(new Duck("唐老鸭"));
fly(new Duck("唐老鸭"));
swim(new Duck("唐老鸭"));
}
}
五.接口的继承
在Java中,类和类之间是单继承的,一个类可以实现多个接口,接口与接口之间可以多继承。即:用接口可以达到多继承的目的。
接口可以继承一个接口, 达到复用的效果. 使用 extends 关键字。
接口间的继承相当于把多个接口合并在一起