文档介绍:返回
第4章 Java程序结构
Java语言是一种纯面向对象的程序设计语言,它的核心概念是类和对象,它的程序是基于类和对象建造的,程序中类的结构决定了程序的结构。这一章较深入系统地介绍Java程序的结构,介绍组成Java程序的类之间的关系。
Java程序结构
类层次结构
对象的使用与对象间通信
多态性
接口与包
访问控制与修饰符
类层次结构
继承的概念
继承的描述
类的继承规则
变量的隐藏
继承的概念
在日常生活中,我们常用“是一种(is-a)”关系来组织与表达知识,从而将知识组织成一种有层次、可分类的结构。面向对象程序设计方法将is-a关系引入到程序设计领域,用于描述类与类之间的关系,称之为继承。
多态性
同一运算或方法(如“+”)对不同类型的对象(如整型数,或字符串)有不同的语义解释。这种在程序中同一方法对不同类型的对象有不同解释的现象称为多态性
多态性与继承是密不可分的。通常,两类对象都有共同的父类,在父类中定义的方法在这两个子类中分别有不同的实现
超类与子类
我们在声明类A时,指明类A继承了类B(类B是一个已定义了的类),则类A 通常就拥有了类B的成员变量和方法。此时,类B称为类A的直接超类(superclass),超类也称为父类或基类;类A称为类B的直接子类(subclass),子类也称为派生类
继承的描述
Java语言中,声明类首部的格式如下:
[类的修饰符] class 类名[extends 超类名][implement 接口名表]
其中“extends 超类名”部分就是用来描述继承的,这里超类名指明所声明类的直接超类
继承描述的演示
class Car // 声明Car类
{
int car_number;
void set_number(int car_num)
{
car_number = car_num;
}
void show_number( )
{
("我的车号是:"+car_number);
}
}
class TrashCar extends Car // 声明TrashCar类,它继承Car类
{
int capacipy;
void set_capacity(int trash_car_capacipy)
{
capacipy = trash_car_capacipy;
}
void show_capacity( )
{
("我的容量是:"+capacipy+" ");
}
}
类的继承规则
直接子类继承那些被声明为public 或protected的直接超类成员(包括成员变量和成员方法,下同)
直接子类继承那些未被存取权限修饰符修饰的直接超类成员,只要该子类与该超类在同一个包中
如果直接子类声明了一个与直接超类中的成员同名的成员,则该子类不继承该超类中的该同名成员
直接子类不继承被修饰为private的直接超类的成员