面向对象笔记
面向对象笔记
javac会为每个类自动生成一个类初始化方法,类字段在这个方法的主体中初始化,这个方法只在首次使用一个类之前被调用一次(经常是在Java虚拟机首次加载类时)。
通过定义子类或者拓展超类想类中添加功能的能力,是面向对象编程范式的核心。
上转过程无需做任何矫正(类型转换),但上转之后的下转需要做强转。
final类:表明该类不允许扩展或定义子类。
Object是一个特殊的类
- 他是Java中唯一一个没有超类的类
- 所有Java类都从Object类中继承方法
默认构造方法和构造方法链
Java保证在创建对象时一定会调用类构造方法,当一个类没有申明构造方法时,Java会自动为这个类提供一个无参构造方法,一旦开发人员为该类申明了任意形式的构造函数,那么Java不在提供默认构造函数。
java保证在创建对象时一定会调用超类的构造方法,当子类没有显式调用超类构造方法时,Java会自动在在子类的构造方法方法体开始处插入一个super()用于父类的午餐构造方法(注意:当父类没有无参构造方法时,编译会出错),子类可以指定调用父类的某个构造函数,此时在子类方法体起始处插入super(...)可完成指定,Java根据传入的参数去判断具体调用那个构造方法。(这两点规则在使用this(...)时会有一些小注意点,此处就不写下去了#快吐了#)
构造方法链:创建子类对象时,会调用子类的直接父类的构造方法,在执行父类的构造方法时会调用父类的父类的构造方法....这种链式的...构造方法链。
近期评论