Java读书笔记——07 面向对象 继承
来源:互联网 发布:网络宣传要会什么 编辑:程序博客网 时间:2024/06/05 15:20
继承:复用已有类的方法可域,构建新类。还可以添加新的方法和域,满足新的需求。Java不支持多继承(一个儿子只能有一个父亲)
类、超类、子类
已存在的类:超类,基类,父类
新生的类:子类,派生类
super:指示编译器调用父类方法的特定关键字。不是对象的引用,不能赋给另一个对象变量。
public Manager(String n, double s, int year, int month, int day){ //调用超类中含有n,s,year,month,day参数的构造方法 super(n, s, year, month, day);}
多态(继承,重写,父类引用指向子类对象)
一个引用具体指向哪个类的实例对象是不确定的,在程序运行时才能知道,因为程序运行时才确定具体的类。通过一个父类可以引用多个子类就是多态。
父类的引用指向了子类对象。
父类不可以引用子类的方法,但如果子类重写了父类的方法,则父类调用方法时显示的是子类的内容。
//class Manager extends EmployeeManager boss = new Manager(...);Employee[] staff = new Employee[3];staff[0] = boss;//此时二者引用同一对象,但编译器将staff[0]看作employee类的对象//多态的表现Employee e ;e = new Employee(...);e = new Manager(...);//两种都不会出错
动态绑定
调用对象方法过程:
①查看对象声明类型和方法名,列举所有此类中名字相同的方法和超类中所有public并且名字相同的方法。
②查看方法参数类型,完全匹配就选择(重载解析)。
③public才需要动态绑定,private,static,final方法编译器都可以准确知道如何调用。
无需修改代码就可以扩展程序,会自动调用。子类方法不能低于父类方法的可见性。
final关键字
类不允许被继承,方法不允许被重写。
强制类型转换
子类变量引用赋给父类允许,父类赋给子类需要转换类型。转换类型前用instanceof检查。
instanceof:通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。
result = object instanceof class
result:布尔类型。
object:对象名。
class:类名。
//a(父类对象引用)赋给b(子类对象引用),先判断a是不是属于父类Cif(a instance of C){ b = (C) a;}
抽象类
祖先类:派生其他类的基类。
· 虽然可以定义,但里面方法具体怎么实现需要由子类决定。比如Person类有Employee和Student两个子类,还有getDescription()方法,但两个子类的描述互不相同,person类无法定义,该方法需要在子类中分别实现。所以写成抽象的——加abstract关键字。
· 有abstract方法的类一定是abstract类。
· 抽象类不能创建对象,不过可以引用子类非抽象类的对象。
· 抽象类的子类实现父类的全部抽象方法,则不是抽象类;如果没有完全实现,就是抽象类。
protect关键字:受保护访问
当希望父类域或方法被子类访问时,用protected声明它们。但子类方法只能访问子类对象中的域,而不能访问其他父类对象中的这个域。比如Manager类中方法只能访问m中的域,不能访问Employee类中其他对象的该域——子类只能访问受保护域。
谨慎使用,可能破坏封装性。
几种关键字 小结
- Java读书笔记——07 面向对象 继承
- JAVA面向对象——继承
- Java面向对象——继承
- Java面向对象——继承
- JAVA面向对象——继承
- JAVA继承——面向对象
- 继承——java面向对象
- Java ——面向对象的继承
- java面向对象——继承
- JAVA面向对象编程——继承
- java面向对象——继承--初识继承
- 《JAVA面向对象编程》读书笔记-继承与组合
- Java面向对象--继承
- Java面向对象:继承
- JAVA面向对象-----继承
- Java面向对象 继承
- java学习笔记《java面向对象编程》——继承
- 面向对象——继承
- 常用JS功能函数汇总
- leetcode-387. First Unique Character in a String
- 订单信息
- 171122之导入项目常见问题
- HDU--4221--Greedy?
- Java读书笔记——07 面向对象 继承
- 针对在webstorm开发React Native的代码快捷设置
- 拦截器——okhttp(post)+recyclerView显示数据
- codeforce 825E. Minimal Labels 拓扑排序 贪心思想
- 转:spring上下文,spring mvc上下文,以及servlet上下文的关联以及理解
- 互联网产品的运营指标
- OpenGL从1.0开始--绘制规则多面体
- 网络工程师成长日记151-面试好好面,别耍怪!
- JSP内置对象application、out、page、config,exception总结(五)