- 创建NetCard接口和USB接口,创建Computer抽象类,然后继承Computer类,实现NetCard接口和USB接口,创建笔记本电脑类Laptop。
- Java简化了C++的多重继承,是单根继承,只能继承一个类,但是作为补偿,Java允许实现多个接口,让一个类可以实现更多的特性。
- 在Java里,继承一个类,实现多个接口,就好比是只有一个父亲,可以有多个叔叔。
- 抽象类不能实例化
- 使用抽象类的匿名子类
- 创建一个类,如果没有显式地继承某个类,那么它就是Object类的子类
- Animal的类图
- Cat的类图
- Dog的类图
- Bird的类图
- 创建LoginFram类,继承JFrame
- 希望在窗口里添加一个按钮,单击它会弹出一个消息框,网页设计里通过脚本来实现,如下图所示。
package net.nieyourong.p03.t02;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class LoginFrame extends JFrame {
private JButton btnLogin;
public LoginFrame(String title) {
super((title));//super表示父类的实例
initGUI();//初始化用户界面
eventHandling();//进行事件处理
}
private void eventHandling() {
//给登录按钮注册动作监听器
btnLogin.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "哈哈,今天立夏,欢迎登录~");
}
});
}
private void initGUI() {
//创建按钮对象
btnLogin = new JButton("登录");
btnLogin.setFont(new Font("楷体",Font.PLAIN,20));
//获取窗口的内容面板(Container --> JPanel)
JPanel panel = (JPanel) this.getContentPane();
//设置内容面板布局 - 流式布局
panel.setLayout(new FlowLayout());
//将按钮对象添加到内容面板
panel.add(btnLogin);
//设置窗口属性
this.setVisible(true);
this.setBounds(200,200, 400, 300);//设置窗口边界(位置与大小)
this.setLocationRelativeTo(null);//让窗口屏幕居中
this.setResizable(false);//让窗口不能调整尺寸
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口里退出应用程序(3)
}
public static void main(String[] args) {
//创建登录窗口匿名对象
new LoginFrame("用户登录");
}
}
- 运行程序,查看结果



