Override

原创 2016年08月29日 23:25:35

方法重写(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);
    }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

Python中的继承和override(由类的实例获取类的字符串信息)

今天有时间将Python中的继承敲了些代码来加深理解。 class Animal(object): """ Inherit and override function. """ de...
  • yaked
  • yaked
  • 2015年01月21日 16:00
  • 2566

C++ 中提供的override 关键字

C++ 语言标准这些年进化的很快,许多新引入的特性我都没有用过。说实话自己也比较懒,总是觉得自己对C++ 的掌握程度已经足够应付日常的各种项目了,所以没有学习新特性的动力。而且一直觉得新引入的特性多数...
  • liyuanbhu
  • liyuanbhu
  • 2015年02月14日 10:57
  • 11705

关于@Override在1.5和1.6之后的区别

@Override注解是作用于源代码的注解,用于表明注解的方法重写了父类型的方法,但是这个注解在1.5和1.6及以后是区别的。1.5中,只能用于在继承某个类时,重写父类中的方法,而在实现一个接口中的方...
  • mhmyqn
  • mhmyqn
  • 2015年08月29日 15:53
  • 1503

c++的override关键字

我那个编译器里把override标蓝(表示那是系统关键字),它有什么用? 我知道【英语单词】override表示子类覆盖掉父类的方法,调用时会调用子类的方法;父类对应的方法已经用virtual修饰。...
  • silent_bobo
  • silent_bobo
  • 2015年05月25日 07:01
  • 932

提高你的Java代码质量吧:注意@ Override不同版本的区别

一、分析  @Override注解用于方法的覆写上,它在编译期有效,也就是Java编译器在编译时会根据该注解检查是否真的是覆写,如果不是就报错,拒绝编译。  该注解很大程度解决我们的误写问...
  • p106786860
  • p106786860
  • 2013年09月16日 10:50
  • 4932

java 静态方法不能被override

先上代码,看结果分析:  父类:class Base { public static int a = 10; public int b = 20; static { System.out.p...
  • bingliquhuo
  • bingliquhuo
  • 2014年03月17日 11:16
  • 911

C++ override 关键字用法

override关键字作用: 如果派生类在虚函数声明时使用了override描述符,那么该函数必须重载其基类中的同名函数,否则代码将无法通过编译。 举例子说明struct Base { v...
  • xiaoheibaqi
  • xiaoheibaqi
  • 2016年04月28日 09:59
  • 3122

面向对象重写(override)与重载(overload)区别

一、重写(override) override是重写(覆盖)了一个方法,以实现不同的功能。一般是用于子类在继承父类时,重写(重新实现)父类中的方法。 重写(覆盖)的规则: 1、重写方法的参数列表...
  • u013754847
  • u013754847
  • 2016年03月24日 10:54
  • 1937

C#关键字之override详解

重载、重写、覆写,分别指的是overload、override、new。 一、override重写,是在子类中重写父类中的方法,两个函数的函数特征(函数名、参数类型与个数)相同。用于扩展或修改继承的...
  • yiyelanxin
  • yiyelanxin
  • 2017年05月12日 10:47
  • 3712

Override和Overload的含义去区别

最近看了一下关于java的基础知识,对此作了一下搜集整理:  java中的继承,方法覆盖(重写)override与方法的重载overload的区别  方法的重写(Overriding)和重...
  • u011860731
  • u011860731
  • 2015年09月25日 11:25
  • 5294
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Override
举报原因:
原因补充:

(最多只允许输入30个字)