final关键字的作用

final关键字可以用于三个地方: 类属性,表明该属性是常量,不可变 类,使用final修饰的类不能被继承 方法,使用final修饰的方法不可以被覆盖。 final实例字段 可以将实例字段定义为final。这样的字段必须在构造对象时初始化。也就是说,必须确保在每一个构造器执行之后,这个字段的值就已经设置,并且以后不能再修改这个字段。例如: class Emploee { private final…

方法的重写(覆盖)

重写:子类继承父类后,可以对父类中同名同参数的方法进行覆盖操作。重写以后,当创建子类对象以后,通过子类对象调用父类中的同名同参数方法时,实际执行的是子类重写父类的方法。 一般的,我们称子类叫重写的方法,父类的叫被重写的方法。 注意:构造函数不是成员,因此它们不会被子类继承,但是可以从子类调用超类的构造函数。 package com.studyjava.unit1; class Person { p…

子类构造器

super 可以使用super来调用父类的属性或方法,调用方式为 super.属性名 super.方法名(参数列表)。 除此之外,还可以通过super来调用父类的构造器。 super(参数列表) 子类构造器 在java中子类构造器和php中相比,有了一些限制: 子类构造器中使用超类构造器,调用父类构造器的语句必须是第一条语句。 如果子类构造器没有显示的调用超类的构造器,将自动的调用超类的无参数构造…

面向对象的特征——多态

什么时候该用继承?有一个简单规则可以用来判断是否应该将数据设计为继承关系,这就是“is_a”规则。它指出子类的对象也是超类的对象。“is_a”规则的另一种表述是替换原则。它指出程序中出现超类对象的任何地方都可以使用子类对象替换。 一个对象变量可以声明为多种对象类型的现象称为多态。在运行时能够自动地选择适当的方法,称为动态绑定。 下面通过代码来展示多态与动态绑定: public class Empl…

对象类型转换

对Java对象的强制类型转换称为造型 从子类到父类的类型转换可以自动进行 从父类到子类的类型转换必须通过造型( 强制类型转换) 实现 无继承关系的引用类型间的转换是非法的(在造型前可以使用instanceof) Object obj = new Person(); // 强转 if (obj instanceof Person) { Person p = (Person) obj; }