来,继续啊,为了讲解项目动漫拼图,这里我们先讲解一个小知识:继承概述。
通过这个名字呢,大家也发现了,这里我们仅仅是对继承做一个简单的讲解,后续呢,会深入的给大家再来讲解继承相关的知识。
首先,我们来说一下,什么是继承:
也就是说,通过继承,可以把父类中能够被访问到的成员变量和成员方法拿过来直接使用。
了解了什么是继承后,我们在来说一下,继承是如何实现的。
那继承是如何实现的呢?我们一起来看一下继承的格式:
在这里,Zi类和Fu类,通过extends就产生了继承关系。这样呢,Zi类就可以使用Fu类中的成员了。
在这里,Fu这个类,被称为是父类,也被称为基类、超类,Zi这个类:是子类,也被称为派生类
了解了继承是如何实现的,下面呢,我们再来举例说明一下,其实我们在前面已经使用过继承的知识了。
看这里,我们使用过GUI中这样的几个组件:
JLabel,JButton,JTextField,JTextArea
并且还使用过它们的一些方法,比如说:public void setBounds(int x, int y, int width, int height),这几个组件我们都使用过这样的一个方法。
大家想一下,如果我们在每个类中都定义这样的同体系的多个类中都使用的方法,有多个这样的组件,我们就要定义多少个这样的方法。
将来如果有新的组件,我们还是需要定义这样的方法,这样设计起来,我们程序的复用性是不是就太差了啊。
而且,这是Java给我们提供的API,Java大师们肯定不会有这么low的设计,
所以,为了提高代码的复用性,这里就采用了继承的思想,让一个类中定义这样的方法,所有继承该类的类就可以使用这个方法了。
来,打开帮助文档,我们一起去看一下:

其他的几个,大家打开文档自己去看,最终能够找到他们共同的父类:Component。
看完文档之后,回来总结一下,继承的好处之一是:提高了代码的复用性
在这里,我们提到了什么是继承,继承的格式及继承的好处。
好了,关于继承概述我们就先讲到这里。
来,继续啊,下面呢我们来做一个继承的练习。
首先,我们来看一下需求:使用继承的方式,改写用户登录界面展示的案例
知道了,要做什么之后,下面呢,我们到IDEA中一边分析,一边实现:
ximport javax.swing.*;public class UserLoginFrame extends JFrame { public UserLoginFrame() { //窗体初始化 initFrame(); //绘制窗体 paintView(); this.setVisible(true); } public void paintView() { //显示用户名文本 JLabel usernameLable = new JLabel("用户名"); usernameLable.setBounds(50, 50, 50, 20); this.add(usernameLable); //用户名输入框 JTextField usernameField = new JTextField(); usernameField.setBounds(150, 50, 180, 20); this.add(usernameField); //显示密码文本 JLabel passwordLable = new JLabel("密码"); passwordLable.setBounds(50, 100, 50, 20); this.add(passwordLable); //密码输入框 JPasswordField passwordField = new JPasswordField(); passwordField.setBounds(150, 100, 180, 20); this.add(passwordField); //登录按钮 JButton loginButton = new JButton("登录"); loginButton.setBounds(50, 200, 280, 20); this.add(loginButton); } public void initFrame() { this.setTitle("用户登录"); this.setSize(400, 300); this.setDefaultCloseOperation(3); this.setLocationRelativeTo(null); this.setAlwaysOnTop(true); this.setLayout(null); }}xxxxxxxxxxpublic class App { public static void main(String[] args) { UserLoginFrame userLoginFrame = new UserLoginFrame(); }}用继承改进后,代码看起来清晰多了,所以,如果我们做GUI开发的,在做窗体的时候,就会定义类继承自JFrame来使用。
好了,关于继承的练习我们就先讲到这里。