首页 > 其他 > 详细

继承//默认object super 方法重写

时间:2021-04-30 20:43:42      阅读:16      评论:0      收藏:0      [点我收藏+]

继承//默认object super 方法重写

package Java学习.chen.haha.ac.dome1;
//jicheng  is  fangfa


public class jicheng{
    private  int money = 100000;
    public int getMoney() {
        return money;
    }

    public void setMoney(int money) {
        this.money = money;
    }


}
package Java学习.chen.haha.ac.dome1;
//父类jicheng  子类xuexi
//java中所有的类直接间接继承object

public class xuexi extends jicheng{
    //子类继承父类的方法  拥有父类的方法
    //私有的无法继承private
    public static void main(String[] args) {
       jicheng student = new jicheng();
       System.out.println(student.getMoney());//100000

    }

}

super ---this

1.调用父类的构造方法,必须在构造方法的第一个

2.super必须自能出现在子类的方法或者构造方法中

3super和this 不能同时调用构造方法

vs this

代表对象不同

this;本身调用者这个对象

super;代表父类对象的应用

前提

this在没有继承也可以使用

super只能在继承条件下使用

构造方法

this();本类的构造

super();父类的构造

package Java学习.chen.haha.ac.dome1;
public class jicheng{
    //私有东西无法杯继承
    public jicheng(){
        System.out.println("jicheng被执行了");
    }



}
package Java学习.chen.haha.ac.dome1;
//父类jicheng  子类xuexi
//java中所有的类直接间接继承object

public class xuexi extends jicheng{
    public static void main(String[] args) {
        xue xue = new xue();//xue无参执行了 jicheng被执行了 
        
    }

     

   

}
package Java学习.chen.haha.ac.dome1;

public class xue extends jicheng{
    public xue(){
    //调用父类构造器必须要在代码的第一行
        //隐藏代码  调用了父类的无参构造
        //super();
        System.out.println("xue无参执行了");
    }
}
package Java学习.chen.haha.ac.dome1;//子类
//父类jicheng  子类xuexi
//java中所有的类直接间接继承object

public class xuexi extends jicheng{
    protected String name = "dong";
    public void test(String name){
        System.out.println(name);//马建伟
        System.out.println(this.name);//dong
        System.out.println(super.name);//chen


    }
}
public class xue extends jicheng{
    public static void main(String[] args) {
        xuexi xuexi = new xuexi();
        xuexi.test("马建伟");
    }
}
package Java学习.chen.haha.ac.dome1;//父类
public class jicheng{
    protected String name = "chen";
    
}

重写

需要有继承关系子类重写父类的方法

1方法名必须相同

2参数列表必须相同

3修饰符;范围可以扩大但不能缩写 public 》private(私有)

4抛出异常;范围可以被缩小,但不能扩大 classNotFoundException--->Exception

重写子类的和父类一致但方法体不同

为什么需要重写,子类不一定需要,或者不一定满足ait+insert

package Java学习.chen.haha.ac.dome3;

public class b {
    public  static void text(){//1
        System.out.println("b>=test");
    }
    public void test(){//2
        System.out.println("b>=test");
    }

}
package Java学习.chen.haha.ac.dome3;

public class a extends b {
    public static void test(){//结果1
        System.out.println("a>=test");
    }

    @Override//重写
    public void test() {//结果二
        System.out.println();

    }
}
package Java学习.chen.haha.ac.dome3;

import static javax.print.attribute.standard.MediaSizeName.A;

public class c {
    //静态方法;方法的调用只在左边,定义的类型有关
    //非静态方法  重写
    public static void main(String[] args) {
        //方法的调用只和左边,定义的数据类型有关
        a A = new a();
        A.test();//1a>=test   2b>=test


//b为父类引用指向了子类
        b B = new a();
        B.test();//  b>=test   b>=test


    }

}

继承//默认object super 方法重写

原文:https://www.cnblogs.com/saluteme666/p/14722623.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!