GithubHelp home page GithubHelp logo

thinkinjava's Introduction

ThinkInJava

Java 编程**学习笔记

git 用法:
git init (在本地目录下)
git add .
git commit -m "first commit"
git remote add origin @[email protected]:solo1020/*****.git
git push -u origin 分支名(一般是master)

C01_Object

构造器:

  1. 父类无任何构造器:

    • 子类无构造器:自动生成子类无参构造器,并隐式super调用父类自动生成的无参构造器

    • 子类只有无参构造器:不论子类写不写super,均会调用父类无参构造器

    • 子类只有有参构造器:

      子类不调用super 默认去调用父类的自动生成的无参构造器初始化父类
      子类手动调用super() 父类的无参数构造器, 效果一致
      子类手动调用super(param) 父类的有参数构造器,编译失败,因为父类不会自动创建有参构造器(不知道参数是哪些)

    • 子类有有参构造器和无参构造器:同上

  2. 父类有无参构造器:与父类无任何构造器一致

  3. 父类只有有参构造器:

    • 子类无构造器:报错,必须手动创建有参构造器,并super(param) 调用父类有参构造器
    • 子类只有无参构造器:无法进行super()调用,该构造器会报错
    • 子类只有有参构造器:必须显式调用super(param) 父类有参构造器
    • 子类有有参构造器和无参构造器:

      子类无参构造器通过this 调用子类的其他有参构造器,否则报错,因为无法初始化父类(此时父类没有无参构造器)

  4. 父类有有参构造器和无参构造器:

    • 子类无构造器:默认调用父类无参构造器
    • 子类只有无参构造器:可以不写super,编译器自动调用默认父类的无参构造器,也可以指定父类的有参构造器或无参构造器
    • 子类只有有参构造器:可以不写super,编译器自动调用默认父类的无参构造器,也可以指定父类的有参构造器或无参构造器
    • 子类有有参构造器和无参构造器:同上

总结:

  1. 系统默认只能创建和super调用无参构造器
  2. 核心就是必须要完成父类的初始化

static方法继承:
* 不同与子类覆盖成员方法,子类可以隐藏父类的static方法
* 覆盖与隐藏的区别: > 强转成父类对象后,调用static方法,因为只被隐藏而非覆盖,可以调用到父类原有的static方法 > 强转成父类对象后,调用成员方法,因为子类覆盖了父类方法,此时调用的成员方法,只能走子类对象调用

成员变量的绑定:是前期绑定(静态绑定)
> 即:向上转型(强转为父类对象时),对象的成员方法可以找到子类,而对象的成员变量还是父类的成员变量(子类对父类成员变量的隐藏)

前期绑定后期绑定:

thinkinjava's People

Contributors

solo1020 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.