chenjiaxiaohei 2021-12-28 14:57 采纳率: 100%
浏览 51
已结题

子类引用父类普通方法的问题!

子类引用父类普通方法的问题!
主要是第三个,lunchFram是没有传参的,是通过super.setSize();setLocation()调用的嘛?如果是通过super调用的?为什么super可以省略?
运行无错误
想知道第三种的一个解释。
麻烦各位了!
public class TestWindoe extends Frame {
  //第一:重写Frame的方法
    @Override
    public void setSize(Dimension d) {
        super.setSize(d);
    }

    @Override
    public void setTitle(String title) {
        super.setTitle(title);
    }

    @Override
    public void setVisible(boolean b) {
        super.setVisible(b);
    }

    @Override
    public void setLocation(int x, int y) {
        super.setLocation(x, y);
    }

    
    //第二:方法传Frame参数,最后需要实例化
    public void lunchFrame(Frame f){
        f.setTitle("我爱你");
        f.setSize(100,100);
        f.setVisible(true);
        f.setLocation(100,100);

    }


    //第三:方法不传Fram参数
    public void lunchFrame1(){
        setTitle("我恨你");
        setVisible(true);
        setLocation(300,300);
        setSize(300,300);
    }

    public static void main(String[] args) {
        //第一 实例化两个TestWindoe实例
        TestWindoe testWindoe = new TestWindoe();
        //调用重写方法
        testWindoe.setSize(200,200);
        testWindoe.setLocation(200,200);
        testWindoe.setVisible(true);
        testWindoe.setTitle("我想你");

        
        //第二:实例化Frame类
        Frame frame = new Frame();
        //实例化一个实例
        TestWindoe testWindoe1 = new TestWindoe();
        //调用方法
        testWindoe1.lunchFrame(frame);


        //第三:不是实例化Frame
        TestWindoe testWindoe3 = new TestWindoe();
        testWindoe3.lunchFrame1();
    }
}


  • 写回答

3条回答 默认 最新

  • CSDN专家-sinJack 2021-12-28 15:00
    关注
    //第三:方法不传Fram参数
        public void lunchFrame1(){
            setTitle("我恨你");
            setVisible(true);
            setLocation(300,300);
            setSize(300,300);
        }
    

    省略的是this,调用了当前类中继承的方法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月5日
  • 已采纳回答 12月28日
  • 创建了问题 12月28日