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