一、包
包是类的逻辑组织形式。在程序中可以声明类所在的包。同一个包中的类名不能重复。包是有层次结构的,即一个包中可以包含若干个字package <包名>句。
声明包的语法如下:
package <包名>
注意:声明一个包的语句必须写在类中的第一行。
创建Hero类,将该类存放到com.java.oriented.dato.figure包中,具体操作如下
如果要使用Java中存在的包,可以在程序中使用import语句导入包。
在程序中导入包的格式如下:
import <包名>.<类名>
如果要导入一个包中的多个类,可以使用“*”表示包中饭所有的类。
例如:
import java.util.*; //导入Java.util包中所有的类
import java.until.ArrayList; //导入Java.util包中的ArrayList类
二、继承
继承是面向对象的程序设计的一个重要特性,它是通过继承原有类派生出的子类而进而改造出更为复杂的子类。
Java的继承使用extends关键字实现,实现继承的类称为子类,被继承的类称为父类,也被称为基类,超类。
Java继承语法如下:
[修饰符] class 子类名 [extends 父类名]{
//类定义部分
}
注意:Java中的继承为单继承,即一个子类只能有一个直接的父类。
三、重载和重写
(1)重载
- 方法名相同,参数不同。并在同一个类中。
- 由于方法的参数个数或类型不同,所有可用区分重载的方法。
构造方法也可实现方法的重载。
(2)重写
重写在子类与父类中,方法名和参数相同。
四、多态
同一操作作用于不同的对象,可以有不同的解释,以致产生不同的执行的结果。
instanceof运算符
instanceof主要用来判断一个类是否实现了某个接口,或者判断一个实例对象是否属于一个类。
其使用格式如下:
引用类型变量 instanceof (类、抽象类或接口)
课后练习:
在Hero类中使用Tree类,Hero类与Tree类不在同一个包中
定义父类武器,以及子类圣剑和长矛
在Book类中定义3个互为重载的方法,它们分别计算不
同情形下图书的价格。
指向子类的父类引用在执行重写方法时所体现的多态性