一、定义接口
- 新的关键字:interface
- 以前写的类叫实现类,定义方式:public class Hello{}
- interface类叫接口类,定义方式:public interface Hello{}
- 实现类和接口类的区别:实现类的方法必须有方法体;接口类的方法只定义,没有方法体
package com.implement;
/*
* 关键字:interface,表示接口类
*
* 接口类的命令:以I开头作为标识(不强制要求,只是良好的书写习惯)
*
* 接口只规定方法,不实现方法
*/
public interface IStudy {
//传入家庭作业,返回是否做完
public boolean doHomework(String content);
//传入课程号,返回学习成绩
public int learn(String course);
}
二、实现接口
一旦声明要实现某个接口,就必须开发接口规定的所有方法
image.png image.png image.png
package com.implement;
import com.extend.Student;
/*
* 关键字:implements,实现
*
* 后面跟接口类
*
* 一旦实现某个接口,类名会报错,选择add unimplements methods添加没实现的方法代码
*
* 等于生成了代码模板,再根据业务需求,写方法体的内容
*/
public class StudentWL extends Student implements IStudy {
@Override
public boolean doHomework(String content) {
System.out.println("开始做作业:"+content);
return true;
}
@Override
public int learn(String course) {
System.out.println("开始学习:"+course);
System.out.println("学完考试");
return 60;
}
}
三、 测试
package com.implement;
public class Test {
public static void main(String[] args) {
StudentWL wl3=new StudentWL();
wl3.doHomework("家庭作业");
wl3.learn("法语");
//向上转型成接口类型
IStudy wl4=new StudentWL();
wl4.doHomework("家庭作业");
wl4.learn("法语");
}
}
image.png
image.png
image.png
image.png
四、接口的目的
不extends继承、不implements实现:所有东西都自己写
extends继承:东西自己不用写,通过继承,父类的属性和方法直接就有了
implements实现:东西自己要写,但是可以使用接口生成代码模板
继承和接口带来的好处:1、不用重复写代码;2、可以按模板写代码。
这样可以让高级开发和初级开发分工合作,公共的代码高级写,初级继承;复杂的代码高级写接口做模板,初级实现接口生成模板代码
网友评论