创建笔记本电脑类(继承一个类,实现多个接口)
创建NetCard接口
public interface NetCard {
void connectNetwork();//抽象方法,默认是public权限
default void speak(){//缺省方法(从JDK8开始)
System.out.println("网卡用于连接网络");
}
static void tell(){//静态方法(从JDK8开始)
System.out.println("我是一张网卡");
}
}
创建USB接口
public interface USB {
final String TYPE ="3.0";//接口只能定义常量
void connectUSB();//抽象方法
}
创建Computer抽象类
public abstract class Computer {`在这里插入代码片`
public abstract void computer();//抽象方法,必须要有abstract关键字
public abstract void computer(String item);//重载(Overload)的抽象方法
public void speak(){//普通方法
System.out.println("我是一台计算机");
}
}
抽象类里可以包含普通方法,甚至可以不包含抽象方法
创建笔记本电脑类 - Laptop
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 computer() {
System.out.println("笔记本电脑["+name+"]正在计算中……");
}
@Override
public void computer(String item) {
System.out.println("笔记本电脑["+name+"]正在计算["+item+"]。");
}
@Override
public void connectNetwork() {
System.out.println("笔记本电脑["+name+"]正在连接网络……");
}
@Override
public void connectUSB() {
System.out.println("笔记本电脑["+name+"]正在连接USB接口……");
}
}
- 子类相对于父类,可以添加属性成员,还可以添加方法成员,甚至可以覆盖类的同名同参方法,这个操作叫做
Override
(重写)。 - 此时,查看类的层次结构图,按组合键
<ctrl>+<H>
创建笔记本电脑测试类
package java02;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
/**
* @功能:测试笔记本电脑类
* @作者:罗燕
* @日期:2022-05-05
*/
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.speak();
laptop.connectUSB();
laptop.connectNetwork();
laptop.computer(item);
}
}
- 代码说明:
Computer
类除了两个重载的抽象方法之外,还有一个普通方法speak()
,这个方法不是私有的,因此它的子类Laptop
就能继承这个方法,又是laptop.speak()
方法会输出“我是一台计算机……”