Java定义了一种名字空间,称之为包:package。一个类总是属于某个包,类名(比如Person)只是一个简写,真正的完整类名是包名.类名。 例如: 小明的Person类存放在包ming下面,因此,完整类名是ming.Person; 小红的Person类存放在包hong下面,因此,完整类名是hong.Person; 小军的Arrays类存放在包mr.jun下面,因此,完整类名是mr.jun.Ar…
继承的出现减少了代码冗余,提高了代码的复用性;此外,也更有利于功能的扩展,让类与类之间产生了关系,提供了多态的前提。 父类 Employee 员工类Employee作为超类(父类、基类),经理类Manager作为子类(派生类)。 员工类代码如下: package com.studyjava.demo; public class Employee { private String name; pri…
final关键字可以用于三个地方: 类属性,表明该属性是常量,不可变 类,使用final修饰的类不能被继承 方法,使用final修饰的方法不可以被覆盖。 final实例字段 可以将实例字段定义为final。这样的字段必须在构造对象时初始化。也就是说,必须确保在每一个构造器执行之后,这个字段的值就已经设置,并且以后不能再修改这个字段。例如: class Emploee { private final…
什么时候该用继承?有一个简单规则可以用来判断是否应该将数据设计为继承关系,这就是“is_a”规则。它指出子类的对象也是超类的对象。“is_a”规则的另一种表述是替换原则。它指出程序中出现超类对象的任何地方都可以使用子类对象替换。 一个对象变量可以声明为多种对象类型的现象称为多态。在运行时能够自动地选择适当的方法,称为动态绑定。 下面通过代码来展示多态与动态绑定: public class Empl…
在Java中,有一个类的始祖,它就是Object类,在java中每个类都扩展了Object。所有类包括自定义的类吗?比如自己写的一个员工类: class Employee { … } 这里并没有写成 class Employee extends Object { … } Java规定,如果一个类没有明确指出超类(即没有使用extends),那么它的超类就是Object。 Object与其他…