创建笔记本电脑类,继承一个类实现多个接口
- 创建NetCard接口和USB接口,创建Computer抽象类,然后继承Computer类,实现NetCard接口和USB接口,创建笔记本计算机类Laptop。
- Java简化了C++的多重继承,是单根继承,只能继承一个类,但是作为补偿,Java允许实现多个接口,让一个类可以实现多个特性。
- 在Java里,继承一个类,实现多个接口,就好比只有一个父亲,可以有多个叔叔。
一、编程实现
1、创建NetCard接口
- 在
net.zwh.p03.t02
包里创建Net Card
接口
package net.zwh.p03.t02;
/**
* 功能:网卡接口
*/
public interface NetCard {
void connectNetwork(); //抽象方法, 默认是public权限
default void speak() { //缺省方法 (从JDK8开始)
System.out.println("网卡用于连接网络......");
}
static void tell() { // 静态方法(从JDK8开始)
System.out.println("没有网卡,就不连接到网络.....");
}
2、创建USB接口
- 在
net.zwh.p03.t02
包里创建USB
接口
package net.zwh.p03.t02;
/**
* 功能:USB接口
*/
public interface USB {
String TYPE = "3.0"; // 接口里面只能定义常量
void connectUSB(); //抽象方法
}
3、创建Cmputer抽象类
- 在
net.zwh.p03.t02
包里创建Computer
抽象类
package net.zwh.p03.t02;
/**
* 功能:计算机抽象类
*/
public abstract class Computer {
public abstract void compute(); // 抽象方法,要带访问权限
public abstract void compute(String item); // 重载的抽象方法
}
4、创建笔记本电脑类 - Laptop
- 继承Computer抽象类,实现net Card和USB接口
- 在
net.zwh.p03.t02
包里创建Laptop
类
package net.zwh.p03.t02;
/**
* 功能:笔记本电脑类
*/
public class Laptop extends Computer implements NetCard, USB{
private String name;
public 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接口......");
}
}
- 此时,查看类的层次结构图,鼠标指针放在
compute
上按组合键<Ctrl>+<H>
- 查看Laptop类图
5、创建笔记本电脑测试类
- 在
net.zwh.p03.t02
包里创建TestLaptop
类