Head First Java笔记之构造函数篇
来源:互联网 发布:未来软件的发展趋势 编辑:程序博客网 时间:2024/06/17 14:58
构造函数
输出结果如下:
public class A {public A() {}}
构造函数看起来像方法,但是它并不是方法。它带有new的时候会执行程序代码,也就是新建一个对象的时候执行。
eg:A a = new A(); //严格来说,这是唯一在构造函数之外能够调用构造函数的方式。
在类中,即使我们没有编写构造函数,编译器也会帮助我们完成(默认是无参构造函数)
编译器会在我们没有写构造函数的时候给我们完成一个无参构造函数,如果我们已经写了一个有参数的构造函数,并且我们需要一个没有参数的构造函数,必须我们手动完成,编译器在已经有构造函数的前提下,是不会帮助我们完成构造函数的创建的。
当子类继承父类的时候,会先执行父类的构造方法,在执行子类的构造方法。
原因:当我们new一个对象的时候,子类的构造函数进入堆栈最上方的堆栈块,子类的对象调用父类的构造函数,导致父类的构造函数进入栈顶。执行的时候,先执行父类的构造函数,执行完成,父类的堆栈块会被弹出,接着执行子类的构造函数。先进后出。
super关键字
当父类中有多个构造函数,子类在创建对象的时候,会默认先执行父类的中的无参构造函数。编译器会自动在子类的构造函数中加入了调用父类的默认构造函数(调用父类的构造函数必须使用关键字super)
public class Demo01{ Demo01(){ super(); System.out.println("superA"); }如果我们想要调用父类中的指定的构造函数,调用方法如下:
class Demo01{Demo01(){super();System.out.println("superA");}Demo01(String s){System.out.println("s------"+s);}}public class Test02 extends Demo01{Test02(){super("aaa");System.out.println("thisB");}public static void main(String[] args) {Demo01 t = new Test02();}}
输出结果如下:
s------aaa
thisB
父类和子类相当于现实中的父子关系,我们都知道不可能先有儿子后有老子。
0 0
- Head First Java笔记之构造函数篇
- <<head first java>>学习笔记
- 【note】Head First Java笔记
- head first java学习笔记
- Head First Java学习笔记
- Head First Java学习笔记
- Head First 之策略模式笔记
- Head First 之观察者模式笔记
- Head First 之装饰模式笔记
- head first c 笔记<4> 之分而治之
- <Head First Java>学习笔记--第一章:基本概念
- Head First Java笔记(1)基本概念
- Head First Java笔记(一)
- Head First Java笔记(二)
- Head First Java笔记(三)
- Head First Java笔记(四)
- Head First Java笔记(五)
- Head First Java笔记(六)
- input 只允许输入数字
- Qt3D的研究
- SQL Server处理字符串常用的函数
- Codevs4175 收费站(重庆一中高2018级信息学竞赛测验9) 解题报告
- PHP+wampServer+phpStorm + xdebug 单步调试
- Head First Java笔记之构造函数篇
- Hbase的数据写入
- 第十二章
- 修复mac os中sudo等基础指令不能用
- 第2章 系统本地化和键盘设置
- phantomjs html2Image.js 网页转换图片
- C++引用(笔记)
- Android Toast 默认和自定义使用
- 网页游戏与平台登录对接流程