任务一、创建笔记本电脑类(继承一个类,实现多个接口)
- 创建接口和USB接口,创建Computer抽象类,然后继承Computer类,实现接口和USB接口,创建笔记本计算机类Laptop。
- Java简化了C++的多重继承,是单根继承,只能继承一个类,但是作为补偿,Java允许实现多个接口,让一个类可以实现更多的特性。
- 继承一个类,实现多个接口,就好比是只有一个父亲,可以有多个叔叔。
(一)编程实现
1、创建接口
![在这里插入图片描述](https://img-blog.csdnimg.cn/485d1a7c92624fa9966cc0cfde4490da.png)
package next.Z;
public interface Netcard {
void connectNetwork();
default void speak(){
System.out.println("网卡用于连接网络……");
}
static void tell(){
System.out.println("我是一张网卡……");
}
}
2、创建USB接口
![在这里插入图片描述](https://img-blog.csdnimg.cn/3aa607bf5d34439392efee84459772f6.png)
package next.Z;
public interface USB {
String TYPE = "3.0";
void connectUSB();
}
3、创建computer抽象类
![在这里插入图片描述](https://img-blog.csdnimg.cn/8222b1b720614231846d65bae8f98dae.png)
package next.Z;
public abstract class Computer {
public abstract void compute();
public abstract void compute(String item);
}
4、创建笔记本电脑类
![在这里插入图片描述](https://img-blog.csdnimg.cn/a049cb1994f7437fadb477e44062d4be.png)
package next.Z;
public class Laptop extends Computer implements Netcard,USB{
private String name;
private String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
@Override
public void compute() {
System.out.println("笔记本电脑["+ name +"]正在计算中……");
}
@Override
public void compute(String item) {
System.out.println("笔记本电脑["+ name +"]正在计算中["+ item +"]");
}
@Override
public void connectNetwork() {
System.out.println("笔记本电脑["+ name +"]正在连接网络……");
}
@Override
public void connectUSB() {
System.out.println("笔记本电脑["+ name +"]正在连接USB接口……");
}
}
- 此时,查看类的层次结构图 Ctrl+H
![在这里插入图片描述](https://img-blog.csdnimg.cn/110cc94de7e3411e90ed8f6b6ffa8cc3.png)
- 查看类图
![在这里插入图片描述](https://img-blog.csdnimg.cn/ace9c891b6274341aaad3d7a89aa8def.png)
5、创建笔记本电脑测试类
![在这里插入图片描述](https://img-blog.csdnimg.cn/42246f20389f4b678cf9a684d64c3aab.png)
package next.Z;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class TestLaptop {
public static void main(String[] args) throws IOException {
String name,item;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("笔记本电脑: ");
name = br.readLine();
System.out.print("计算的项目名: ");
item = br.readLine();
Laptop laptop = new Laptop();
laptop.setName(name);
laptop.connectUSB();
laptop.connectNetwork();
laptop.compute();
laptop.compute(item);
}
}
6、运行结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/2e282dc8d20147d88ecdadbb02b68cf6.png)
(二)知识点讲解
![在这里插入图片描述](https://img-blog.csdnimg.cn/149ea5b8bcca47ce9cd816e7f827c2e8.png)