Head First Java 总结(五)
来源:互联网 发布:linux 服务编程 编辑:程序博客网 时间:2024/05/16 10:34
第七章 继承与多态
继承
找到几个类中共同的部分,提取出新的类,将其作为父类,将这几个类以继承的关系连接到父类,再覆盖抽取到父类中的方法,以此提高代码的重用性,使代码简洁。
判断是否应该继承
判断方法:IS-A与HAS-A检测
例如:判断Tiger与Animal是否是继承关系
Tiger is a Animal. 说得通,是继承关系
判断book与bookstores是否是继承关系
book is a bookstores. 说不通
bookstores has a book. 书店里有书说得通
book类似于实例变量,也可理解为引用
IS-A 继承关系
HAS-A 引用关系
在子类中引用父类的方法
使用super关键字,super.fuction();
public class Animal{ public void eat(){ System.out.println("eat meats"); }}public class Tiger extends Animal{ public void eat(){ super.eat(); System.out.println("rabbits"); }}
子类能够继承哪些东西
父类可通过存取权限决定子类是否能够继承某些特定的成员
- public类型的成员会被继承
- private类型的成员不会被继承
什么场合使用继承
某个类比父类更具有特定意义时使用继承
例如:金毛是一种特定品种的狗,从狗中扩充出金毛是合理的在行为程序应该被多个相同基本类型类共享时
例如:金毛,泰迪,哈士奇都需要吃东西和睡觉,将这些共性的功能放在父类中
继承的意义
- 避免了重复的程序代码
定义出共同的协议(子类拥有父类的全部public方法)
多态
父类引用指向子类对象
对象声明,创建,与赋值的3个步骤
Dog myDog=new Dog();
1 声明一个引用变量:Dog myDog
2 创建对象:new Dog();
3 连接对象和引用 =
多态:Animal myDog=new Dog();
如何防止某个类被继承
- 存取控制
- 使用final修饰符,表示它是继承树的末端,不能被继承
- 让类只拥有private的构造程序
防止特定方法被覆盖
将该方法用final修饰
阅读全文
0 0
- Head First Java 总结(五)
- Head First Java笔记(五)
- Head First Java 总结
- Head First Java 总结(一)
- Head First Java 总结(二)
- Head First Java 总结(三)
- Head First Java 总结(四)
- Head First Java 总结(六)
- Head First Java 三 四 五
- 《Head First设计模式》要点(五)
- Head First Java读书笔记 (一)
- Head First Java笔记(1)基本概念
- Head First Java笔记(一)
- 《Head First Java》读书笔记(1)
- Head First Java笔记(二)
- Head First Java笔记(三)
- Head First Java笔记(四)
- Head First Java笔记(六)
- Linux配置path
- master python for finnace 量化回测的案例
- struts2执行原理(执行流程)
- $(document).ready(function(){}) 的含义及其使用
- 菜鸟——数据结构算法2.1实现
- Head First Java 总结(五)
- 爬虫-01-什么是爬虫
- ICPC2017网络赛(西安)B coin (概率计算)
- Ubuntu环境下安装nodejs和npm
- js对用户输入非法字符进行编解码预防xss
- The C programming Language 1-13
- oracle学习总结(四)
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 Xor
- 有趣的数