文档详情

Java语言程序设计 作者 李尊朝 苏军 第7章.ppt

发布:2017-08-17约7.79千字共40页下载文档
文本预览下载声明
第七章 类的继承 和多态机制 7.1 类的继承 7.2 类的多态性 7.3 final类和final成员 7.1 类的继承 在 Java 中,类是一个层次结构,其中Object为超类或基类,所有类都直接或间接地继承自Object类; 子类继承父类的属性和方法,同时也可以修改父类的属性或重载父类的方法,以及在父类的基础上添加新的属性和方法。因此,父类和子类之间反映的是“一般与特殊”的关系。 在类的继承中,被继承的类称为父类,继承而来的类则称为子类。有多个子类共同继承一个父类,那么这个父类就是多个类的基类。 Java语言只支持单继承,如果要定义多继承,可以使用将要讲解的接口。 1 继承的实现 定义子类的形式为: [访问权限] class 类名 extends 父类名 { 类体 } Java中的继承是通过extends关键字来实现的,在定义类时使用extends关键字指明新定义类的父类。新定义的类称为子类,它可以从父类那里继承属性和方法。 类的继承原则如下: 子类继承父类的成员变量,包括实例成员变量和类成员变量。 子类继承父类除构造方法以外成员方法,包括实例成员方法和类成员方法。 子类不能继承父类的构造方法,因为父类的构造方法用来创建父类对象,子类需定义自己的构造方法,用来创建子类自己的对象。 子类可以重新定义父类成员。 父类成员的访问权限 子类虽然继承了父类的成员变量和成员方法,但并不是对父类所有成员变量和成员方法都具有访问权限,即并不是在自己声明的方法中能够访问父类所有成员变量或成员方法。子类访问父类成员的权限如下: 子类对父类的private成员没有访问权限。 子类对父类的public和protected成员具有访问权限。 子类对父类的缺省权限成员访问权限分2种情况:对于同一包中父类的缺省权限成员具有访问权限,对其它包中父类的缺省权限成员没有访问权限。 Java实例——类的继承 public class Person1 { private String name; protected int age; public void setName(String na) { name=na; } public void setAge(int ag) { age=ag; } public String getName() { return name; } public int getAge() { return age; } Java实例——(续) public void print_p() { System.out.println(Name:+name+ Age:+age); } } public class Teacher1 extends Person1 { Protected String department; public Teacher(String na, int ag, String de) { setName(na); setAge(ag); department=de; } public void print_s() { print_p(); System.out.println(Department:+department); } public static void main(String arg[]) { Teacher1 t; t=new Teacher1(Wang,40,Computer Science); t.print_s(); t.setName(Wang Gang); t.age=50; //直接访问父类中protected成员变量age,但不能访问其 //private成员变量name t.print_s(); } } 程序运行结果如下: Name:Wang Age:40 Department:Computer Science Name:Wang Gang Age:50 Department:Computer Science 2 this 与 super 可以使用super引用父类成员变量 super.成员变量名 调用父类成员方法 super.成员方法名(参数表) 调用父类构造方法 super(参数表) 使用this引用当前对象的成员变量 this.成员变量名 调用当前对象的成员方法 this.成员方法名(参数表) 调用当前对象的构造方法 this(参数表) 例--利用super访
显示全部
相似文档