Override

方法重写(Override)

又叫覆写,子类与父类的方法返回值类型一样、方法名称一样,参数一样,这样我们说子类与父类的方法构成重写关系。

方法重写与方法重载之间的关系:重载发生在同一个类内部的两个或多个方法。重写发生在父类与子类之间。

public class TestBook {
    //运行java程序时,会把class加载到内存中
    //java内存分为5个区域:方法区, 本地方法区, **堆**, **栈**, 寄存器
    //栈内存:先进后出,堆内存,使用的是哈希表
    //局部变量都存储在栈内存中,对象存储在堆内存中
    //当方法出栈时,局部变量会消失
    //堆内存中的对象不会消失,java有一个垃圾回收器,会不定时地回收垃圾
    /*
    new 关键字在生成对象时完成了三件事情:
    1. 为对象开辟内存空间。
    2. 调用类的构造方法。
    3. 将生成的对象的地址返回。
    */
    public static void main(String[] args) {
        Book b = new Book(3);
        b.name = "java";
        Book b2 = new Book();
        b2.name = "c";
        b = b2;
        System.out.println("你好" + b.name);
        //System.gc(); //强行调用垃圾回收器gc = garbage collection
        int a = 3;//基本数据类型都存储在栈内存中,引用数据类型存储在堆内存中
        b.look();
    }
}

public class Book {
    String name;

    public Book() {}
    public Book(String name) {
        this(1,2);
        this.name = name;
        System.out.println("没有参数的构造方法");
    }
    public Book(int a) {
        this("abc"); //this() 表示调用当前类,没有参数的构造方法
        //this()在构造方法中必须作为第一条语句,this()之前不能有任何可执行的代码。
        System.out.println("有一个参数的构造方法");
    }
    public Book(int a, int b) {
        System.out.println("有两个参数的构造方法");
    }
    public void look() {
        int a = 3;
        System.out.println(a);
        look(30);
    }
    public void look(int a) {
        System.out.println(a);
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值