第4章_类的重用.ppt

第4章_类的重用

4.1 类的继承 在 Java 中,类是一个层次结构,其中Object为超类或基类,所有类都直接或间接地继承自Object类; 子类继承父类的属性和方法,同时也可以修改父类的属性或重载父类的方法,以及在父类的基础上添加新的属性和方法。 父类和子类之间反映的是“一般与特殊”的关系。子类对象与父类对象存在“IS A”(或“is a kind of”)的关系 在类的继承中,被继承的类称为父类,继承而来的类则称为子类。有多个子类共同继承一个父类,那么这个父类就是多个类的基类。 Java语言只支持单继承,如果要定义多继承,可以使用将要讲解的接口。 4.1.1 继承的实现 定义子类的形式为: [访问权限] class 类名 extends 父类名 { 类体 } Java中的继承是通过extends关键字来实现的,在定义类时使用extends关键字指明新定义类的父类。新定义的类称为子类,它可以从父类那里继承属性和方法。 类的继承原则如下: 子类继承父类的成员变量,包括实例成员变量和类成员变量。 子类继承父类除构造方法以外成员方法,包括实例成员方法和类成员方法。 子类不能继承父类的构造方法,因为父类的构造方法用来创建父类对象,子类需定义自己的构造方法,用来创建子类自己的对象。 子类可以重新定义父类成员。 子类对父类成员的访问权限 父类成员的访问权限 子类虽然继承了父类的成员变量和成员方法,但并不是对父类所有成员变量和成员方法都具有访问权限,即并不是在自己声明的方法中能够访问父类所有成员变量或成员方法。 子类访问父类成员的权限如下: 子类对父类的private成员没有访问权限。 子类对父类的public和protected成员具有访问权限。 子类对父类的缺省权限成员访问权限分2种情况:对于同一包中父类的缺省权限成员具有访问权限,对其它包中父类的缺省权限成员没有访问权限。 Java实例——类的继承 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 { //继承Person1类 protected String department; //子类新增的成员变量 public Teacher1(String na, int ag, String de) { setName(na); //使用父类的方法 setAge(ag); //使用父类的方法 department = de; } Java实例——类的继承(续) public void print_t( ) { print_p( ); //使用父类的方法 System.out.println(Department: + department); } public static void main(String arg[]) { Teacher1 t; t = new Teacher1(Wang,40,Computer Science); t.print_t( ); t.setName(Wang Gang); //直接使用父类的方法 t.age = 50; //直接访问父类中protected成员变量age,但不能访问 //其private成员变量name

文档评论(0)

1亿VIP精品文档

相关文档