再谈类的继承~

关键字:extends

格式:public class 子类 extends 父类

单继承:一个子类只有一个父类(不同于接口),可以多层次继承

一.继承的作用

1)子类可以继承父类的属性和方法

以学生类和大学生类为例

public class Student {
    String name;
    public void study(){
        System.out.println(name+"正在学习");
    }
}
public class UNStudent extends Student{
    public static void main(String[]args){
    UNStudent ustudent=new UNStudent();
    ustudent.name="嘉义";
    ustudent.study();
//可以用父类的name属性和study方法

}}
//运行结果
//嘉义正在学习

二.方法重写

1)为什么要进行方法重写?

从父类那里继承的方法在子类中不太适用,需要改造

2)什么样的方法算方法重写?

-要是在存在继承关系的两个类之间

-与父类中的方法相比,在大括号之前,除了参数名可以不一样,其他均需完全一致

-方法重写成功之后会有标识符

public class UNStudent extends Student{
    public void study(){
        
        System.out.println("子类重写了study方法");
    }
   //重写了父类中的study方法
    public static void main(String[]args){
    UNStudent ustudent=new UNStudent();
    ustudent.name="嘉义";
    ustudent.study();



}}
//运行结果
//子类重写了study方法

3)有时只是需要对父类中原有的方法稍作改造,怎么保留父类中的该方法?

保留父类中该方法的功能需要用到super关键字

super表示表示当前类的父类对象

    public void study(){
        super.study();
        System.out.println("子类重写了study方法");
    }
    
//运行结果
//嘉义正在学习
//子类重写了study方法

三.继承在五子棋中的实际应用

继承JFrame与重写它的paint方法

1)为什么要继承JFrame?

所有的swing组件都有一个paint方法,当窗体的大小被改变或被隐藏时,窗体上所有的swing组件重新调用paint方法(自动调用),绘制组件本身,让它显示在屏幕上

棋盘是画在窗体上的,所以需要继承窗体类,重写窗体的paint方法,让棋盘随着窗体被绘制出来

2)为什么要重写paint方法?

在从父类JFrame继承的原有的paint方法中,只会重绘组件和窗体,原本画在窗体上的线不是swing组件,故不可以被重绘,要想棋盘不丢失,把棋盘写入paint方法中即可,这样每次窗体发生改变调用paint方法时,棋盘就也会被绘制了

 public void paint(Graphics g){
        super.paint(g);
        for(int i=0;i<16;i++){
            g.drawLine(50,50+i*40,50+15*40,50+i*40);
            g.drawLine(50+i*40,50,50+i*40,50+15*40);
        }
    }

3)要保证窗体对象是子类的

窗体对象自动调用的是自己类的paint方法

JFrame类的对象调用的是父类未重写的paint方法

自定义类的对象调用的是子类已重写的paint方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值