1.继承的概念
继承是一种类与类之间的关系,上一级类是下一级类的父亲
人类>学生>大学生、中学生
语法:public class 类名extends父类名{}
2.继承的使用
2.1.调用
子类可以直接使用父类中的属性和方法,子类继承父类的属性和方法
public class Student {
String name;
public void showInfo(){
System.out.println("姓名:"+name);
}
}
//创建子类UnStudent
class UnStudent extends Student{
}
//创建子类MidStudent
class MidStudent extends Student{
}
class manage{
public static void main(String[] args) {
UnStudent unstu1=new UnStudent();
MidStudent midstu1=new MidStudent();
unstu1.name="张三";//调用继承的属性
midstu1.name="李四";
unstu1.showInfo();//调用继承的方法
midstu1.showInfo();
}
}
2.2.方法重写
子类中重写一遍父类的方法,并且改造父类方法
格式:只修改{}中的内容,前面的方法名、参数都不能改
子类之后都会只调用重写的方法
public class Student {
String name;
public void showInfo(){
System.out.println("姓名:"+name);
}
public void read(){
System.out.println(name+"读书");
}
}
//创建子类UnStudent
class UnStudent extends Student{
}
//创建子类MidStudent
class MidStudent extends Student{
public void read() {
System.out.println(name+"读了中学英语");
}
}
class manage{
public static void main(String[] args) {
UnStudent unstu1=new UnStudent();
MidStudent midstu1=new MidStudent();
unstu1.name="张三";//调用继承的属性
midstu1.name="李四";
unstu1.showInfo();//调用继承的方法
midstu1.showInfo();
midstu1.read();//方法重写
unstu1.read();//未重写
}
}
运行结果
3.利用JFrame窗体类创建一个五子棋面板
继承版本:改造窗体要显示的内容
画笔Graphics
fillRect(x1,y1,x2,y2)//填充(x1,y1)到(x2,y2)的矩形
fillOval(x1,y1,r,r)//填充圆形
代码
import javax.swing.*;
import java.awt.*;
public class GoUI2 extends JFrame {
//创建窗体类对象GoUI2
public void showUI(){
setTitle("五子棋对战");
setSize(500,500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
//窗体有一个刷新绘制背景面板的方法
//刷新窗体的方法‘重写后调用该方法
public void paint(Graphics g) {
System.out.println("my paint");
g.setColor(Color.orange);//颜色为橙色
g.fillRect(0, 0, getWidth(), getHeight());//将窗体背景填充为橙色
//画黑色的线格
g.setColor(Color.black);
for (int i = 0; i < getHeight() / 50; i++) {
g.drawLine(0, 50 + i * 50, getWidth(), 50 + i * 50);
}
for (int i = 0; i < getWidth() / 50; i++) {
g.drawLine(50 + i * 50, 0, 50 + i * 50, getHeight());
}
//画黑白棋子
g.setColor(Color.white);
g.fillOval(25,25,50,50);
g.setColor(Color.black);
g.fillOval(25,75,50,50);
}
public static void main(String[] args) {
GoUI2 ui2=new GoUI2();
ui2.showUI();
}
}
运行结果