Sugaweh的博客

我看我自己,就像一个在海边玩耍的孩子,找到一块光滑的小石头,就觉得开心。后来我才知道自己面对的,还有一片真理的大海,那没有尽头。...

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);
    }
}

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Sugaweh/article/details/52357505
个人分类: Java基础
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Override

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭