类的继承
被继承的类称为父类或者超类或者基类
继承父类的类称为子类或者派生类
执行继承时,子类将获得父类的所有成员(包括private的成员),并具有自身特有的属性。
继承是面向对象编程技术的一块基石,它允许创建分等级层次的类。运用继承,可以创建一个通用类定义一系列一般特性。该类可以被更具体的类继承
Emoloyee类:
name
sex
Worker类:
category
dressAllowance
Officer类:
empClass
vehicle
职员类,具
有姓名和性
别两个属性
工人类,继承了父
类的姓名和性别属
性外还包含类别和
是否有服装津贴属性
主任类,还包含
级别和是否配备
交通工具属性
1
extends关键字
extends关键字用于继承类。
声明一个继承父类的类的通常形式如下:
class subclass-name extends superclass-name {
//类体
}
没有extends,默认父类为Object
一个类只能有一个父类,即单继承
子类继承父类的全部成员
注意
2
继承示例
class Employee {
String name; //姓名
char sex; //性别
Employee(String n, char s){
name = n; sex = s;
}
public String getName() { return name; }
public char getSex(){ return sex;}}
class Worker extends Employee {
char category;//类别
boolean dressAllowance; //是否提供服装津贴
Worker(String n,char s,char c,boolean d){
super(n,s);
category = c; dressAllowance = d;
}
public char getCategory(){return category;}
public boolean getAll(){ return dressAllowance; }
}
class InheDemo {
public static void main(String args[]) {
Worker w = new Worker("",'M','B',true);
("工人信息");
("姓名: "+());
("性别: "+());
("类别: "+());
if(())
("提供服装津贴");
else
(“未提供服装津贴”);
}
}
3
继承分析
在子类中不能直接访问父类中的私有成员
子类和父类之间应该有“IS-A”关系
不要滥用继承,只有在分类学上有意义时,才应该使用继承
子类具有扩展超类的责任
继承的目的就是为了代码复用
4
里式代换原则
定义:无论何时,只要程序需要一个超类对象,那么就可以用一个子类对象来替代它。
Employee e;
e=new Employee();//需要超类Employee对象
e=new Manager();//用子类对象替换掉超类对象
注意:反过来是不行的
多态和动态绑定
声明类型:对象变量被声明时的类型
实际类型:对象变量实际指向的对象类型
一个对象变量可以指向多种实际类型的现象称为“多态”
在运行时自动选择正确的方法进行调用的现象称为“动态绑定”
Java根据对象的实际类型来进行方法调用
5
方法重载(overloading)
方法重载是Java实现面向对象的多态性机制的一种方式。
同一个类中多个方法有相同的名字,不同的参数列表,这种情况称为方法重载。
当重载方法被调用时,Java编译器根据参数的类型和数量来确定实际调用哪个重载方法的版本。
方法重载不考虑方法的返回类型。
6
重载构造函数
一个类可以有多个构造函数
如果一个类没有定义一个构造函数,Java 编译器将为这个类自动提供缺省构造函数(即无参的构造函数)
缺省构造函数将成员变量的值初始化为缺省值
一旦创建了自己的构造函数, Java 编译器将不再自动提供无参的构造函数。
重载构造函数提供了一组创建对象的方式,可以根据需要决定是否带初始参数。
pub
java课件-继承和多态-课件PPT(精) 来自淘豆网m.daumloan.com转载请标明出处.