接口与实现
DAY ONE
目录
DAY ONE
第一节:接口
第二节:接口实现
DAY TWO
第三节:接口回调
第四节:接口与多态
第五节:接口参数
DAY THREE
第六节:面向接口编程
前言
自学Java总结的一些接口知识点。
第一节、接口
1.1什么是接口?
接口是Java语言中一种重要的数据类型,接口解决了Java无法实现多继承的弊端
1.2为什么要使用接口?
1、接口可以抽象出重要的行为标准,这个行为标准用抽象方法来表示
2、可以把实现接口的类的对象的引用赋值给接口变量,该接口变量可以调用类中重写的接口方法,即体现这个类根据接口里的行为标准给出的具体行为
1.3定义接口
在Java中使用关键字interface来定义一个接口。接口与类的定义相似,分别为接口声明与接口体
如:
interface Animal{
public void cry();
public String getAnimalName();
}
①接口声明格式:
interface 接口的名字
如以上代码中的
interface Animal
②接口体
接口体中包含常量声明与抽象方法两个部分。接口体中不能有变量与普通方法,且接口中所有的常量访问权限一定是public,而且是static常量(声明时可以省略public、final与static修饰符),所有的抽象方法访问权限也都是public(可以省略public abstract)
如:
interface Mash{
public static final int number = 888;//可以写成:int number=888;
public abstract void add();//可以写成:void add();
public abstract float sum(float x,float y);
}
第二节、实现接口
1.1类实现接口
一个类需要在类声明后使用关键字implements声明该类实现一个或者多个接口。实现多个接口用逗号分隔开接口名,例如:A类实现B,C两个接口
class A implements B,C
1.2重写接口中的方法
如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中的所有方法。有一点要注意,接口中的方法一定是public abstract方法,在重写时要去掉修饰符abstract、且访问权限一定要用public来修饰(不然就降低了访问权限,这是不允许的),并且给出方法体。
例子一:
Animal.java
interface Animal{//定义接口
void cry();
public String getAnimalName();
}
Dog.java
public class Dog implements Animal{//Dog类实现Animal接口
@Override
public void cry() {//重写方法加上public
System.out.println("旺旺旺,我是小狗!");
System.out.println("---------------------");
}
@Override
public String getAnimalName() {
return "小狗";
}
}
Cat.java
public class Cat implements Animal{
@Override
public void cry() {
System.out.println("喵喵喵,我是小猫!");
}
@Override
public String getAnimalName() {
return "小猫";
}
}
Example.java
public class Example {
public static void main(String[] args) {
Dog dog=new Dog();
System.out.println(dog.getAnimalName());
dog.cry();
Cat cat=new Cat();
System.out.println(cat.getAnimalName());
cat.cry();
}
}
运行结果:
总结
以上就是今天要讲的内容,本文仅仅简单介绍了接口的声明与实现