java第5节:inheritance

java第5节:inheritance

ID:33730166

大小:263.41 KB

页数:78页

时间:2019-02-28

java第5节:inheritance_第1页
java第5节:inheritance_第2页
java第5节:inheritance_第3页
java第5节:inheritance_第4页
java第5节:inheritance_第5页
资源描述:

《java第5节:inheritance》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、AdvancedJavaProgramming2010SpringPENGQiminqimin@ioscnqimin@ios.cn对象引用初始化的几种方式对reference进行初始化,可以在以下几个时间进行:¢在定义对象时¢在这个类的构造函数里¢在使用对象之前¢默认初始化£如果在构造函数中没有明确地给某个字段赋值,那么此字字会被动段会被自动地赋值值以一个默认值个默认值:若是数字则被赋值以0,若是布尔类型则被赋值以false,若是对象引用则被赋值以null。但使用默认值被认为是一种糟糕的编程做法。因为,如果字段以不可见的形式被初始化会使得别人很难读懂程序。¢

2、显式初始化£在类的定义中,可简单地把一个值赋值给任何字段。在执行构造函数前,此赋值会被执行。£当类中所有的构造函数都需要把某一特定的实例字段赋值以相同的值时,此语法非常有用。privateStringname=”lili”;¢初始化块£在类声明中可以包含任意数量的代码块。只要构构个造了此类的一个对象象,这些代码块就会被执行。£初始化块首先被运行,然后构造函数的主体部分被执行。classEmployee{publicEmployee(Stringn,doubles){name=n;salary=s;}publicEmployee(){name=””;salar

3、y=0;}//对象初始化模块{id=nextId;nextId++;}privateStringname;privatedoublesalary;privateintid;privatestaticintnextId;privatestaticintnextId;}继承代码复用¢以前:拷贝源代码做修改¢Java:用类来创建新的类¢组合:在新的类里直接创建旧的类的对象¢继承:创建一个新的,与原来那个类同属一种类型的类组合(compostion)¢部分—整体关系(“has-a”)。例如,飞机可由发动机、机身、机械控制系统、电子控制系统等构成。¢一个新类是由其它对

4、象的成员或类型组成合成体,只要把对象的reference直接放到新的类里CarEngine继承¢从现有类派生出新类,这称为继承。使用继承您可以创建一个定义了多个相关项目共有特性的通用类,然后,其它较为具体的类可以继承该类,同时再添加自己的独有特性。¢显示继承别的类、隐含地继承根类Object.¢在定义类时,你加上extends和基类的名字,做完后,新类自动获得基类的全部成员和方法。继承¢类之间的继承关系是现实世界中遗传关系的直接模拟,它表示类之间的内在联系以及对属性和操作的共享,即子类可以沿用父类(被继承类)的某些特征。当然,子类也可以具有自己独立的属性和操

5、作。¢在面向对象设计过程中,设计者力图发现并提取共性以构造父类。子类继承了父类的功能,并根据具体需要来添加功能体需要来添加功能。¢例如,飞行器、汽车和轮船可归于交通工具类,飞行器类可以继承交通工具类某些属性和操作。¢并不因为是父类就意味着有更多的功能。恰恰相反,子类比它们的父类具有更多的功能。因为子类是父类的扩展,增加了父类没有的属性和方法。¢在子类中通常要加入它自己的实例变量和方法,所以子类一般要比它的父类大。¢子类比父类更具体,因而代表了较少的对象。¢如果子类只从一个父类继承,则称为单继承;如果子类从一个以上父类继承,则称为多继承。¢Java不支持多重继

6、承,但它支持“接口”概念。接口使Java获得了多重继承的许多优点,摒弃了相应的缺点。继承¢Base类:超类或父类¢Derived类:继承类或子类BaseDerived¢创建格式如下:[类修饰符]class子类名[extends父类名][implements接口名称列表]{类体}¢extends关键字¢添加新的属性和方法¢重写:改变现存基类函数的行为子类/扩展类¢父类名跟在extends关键字后面,用来说明当前类是哪个已经存在类的子类,存在继承关系。¢子类从父类继承有两个主要的方面:£属性的继承¢例如,公司是一个父类,一个公司有名称、地址、经理、雇员等,这些都

7、属于结构方面。£方法的继承¢一个父类定义了若干操作,如一个公司要有项目、利润、任命经理、录用职工等操作,子公司也将继承这些行为。¢例:定义雇类雇员类Employee的个类的两个子类:一般雇员类:CommonEmployee主管类:ManagerEmployeepppublicclassCommonEmployyeeextendsEmplyeeppgublicclassManagerEmpployyeeextendsEmplyee继承¢Is-a:仅仅重写;例如,圆是一种图形¢Is-like-a:添加新的函数;例如,三角形具有图形的特性继承Shaped(draw

8、())erase()move()getColor()

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。