黑马程序员——面向对象(多态与抽象类)
来源:互联网 发布:心知早早孕 编辑:程序博客网 时间:2024/06/10 18:12
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
今天学习多态与继承方面的知识,还是一句话重在理解。
首先,多态的形式:
简单的说就是父类的引用指向子类的对象。
子父类成员的访问:
1.父类对象的引用,不能访问子类的成员;
2.子类对象的引用,可以访问:
1).从父类继承的成员;
2).自己的成员;
多态的情况(父类指向子类对象):
1.成员变量:
1).父类没有,子类有:编译时,编译错误:找不到符号;
2).父类没有,子类没有:编译时,编译错误:找不到符号;
3).父类有,子类没有:编译通过,运行时:父类的;
4).父类有,子类也有:编译通过。运行时:父类的;
2.成员方法:
1).父类没有,子类有:编译时,编译错误:找不到符号;
2).父类没有,子类没有:编译时,编译错误:找不到符号;
3).父类有,子类没有:编译通过,运行时:父类的;
4).父类有,子类也有:编译通过,运行时:子类的;(方法在运行时是动态绑定的,绑定到当前调用的对象)
汇总:
1.多态时:
1).编译时,如果父类没有,编译错误:找不到符号;
2).运行时,对于被覆盖的成员变量,获取的父类的;对于被重写的成员方法,执行的是子类的;
1.父类对象的引用,不能访问子类的成员;
2.子类对象的引用,可以访问:
1).从父类继承的成员;
2).自己的成员;
多态的情况(父类指向子类对象):
1.成员变量:
1).父类没有,子类有:编译时,编译错误:找不到符号;
2).父类没有,子类没有:编译时,编译错误:找不到符号;
3).父类有,子类没有:编译通过,运行时:父类的;
4).父类有,子类也有:编译通过。运行时:父类的;
2.成员方法:
1).父类没有,子类有:编译时,编译错误:找不到符号;
2).父类没有,子类没有:编译时,编译错误:找不到符号;
3).父类有,子类没有:编译通过,运行时:父类的;
4).父类有,子类也有:编译通过,运行时:子类的;(方法在运行时是动态绑定的,绑定到当前调用的对象)
汇总:
1.多态时:
1).编译时,如果父类没有,编译错误:找不到符号;
2).运行时,对于被覆盖的成员变量,获取的父类的;对于被重写的成员方法,执行的是子类的;
多态之中还有类型的强制转换,我觉得这种对象的强制转换和基本数据类型的转换有点相似。
首先,当我们确定一个父类类型指向某一个之类的对象时,可以将父类类型转换成子类的类型。
如果将一个父类类型转换为子类类型,在转换之前可以先进行判断,使用:instanceof运算符来判断:左边的变量是否是右边的类型
最后,是关于抽象类,抽象类不能被实例化,创建抽象类没意义。
1. 抽象类和一般类区别不大,类中出现不确定抽象的功能时,可以定义抽象方法,抽象方法没有方法主体。
2.抽象类中可以有构造函数用来初始化成员变量.
3.抽象关键字abstract不可以以下关键字共存。
1).static。
2).final : final类表示不能被继承,而abstract类就是被继承的,所以冲突;
final方法表示不能被重写,而abstract方法就是被重写的,所以冲突;
3).private :一个abstract方法就是被重写的,而private的成员在子类中无法访问;
1).static。
2).final : final类表示不能被继承,而abstract类就是被继承的,所以冲突;
final方法表示不能被重写,而abstract方法就是被重写的,所以冲突;
3).private :一个abstract方法就是被重写的,而private的成员在子类中无法访问;
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
0 0
- 黑马程序员——面向对象(多态与抽象类)
- 黑马程序员 面向对象(下) 抽象类与接口
- 黑马程序员——面向对象13:抽象类
- 黑马程序员——面向对象_抽象类
- 黑马程序员——面向对象之抽象类,接口
- 黑马程序员——面向对象(继承、抽象、接口)
- 黑马程序员—面向对象与类
- 黑马程序员——面向对象之抽象类与接口
- 黑马程序员——面向对象_抽象类与接口的区别
- 黑马程序员———面向对象之多态、抽象类和接口
- 黑马程序员——Java基础---面向对象之多态抽象类接口
- 黑马程序员————面向对象(继承,抽象类,接口,多态,异常)
- 黑马程序员——Java面向对象(三)—抽象类、接口
- 黑马程序员 笔记(七)——面向对象(继承、抽象类、接口)
- 黑马程序员_JAVA笔记07——面向对象3(继承、final、抽象类、接口)
- 黑马程序员——面向对象(抽象类、接口、内部类)
- 黑马程序员——面向对象07(继承、final、抽象类、模版方法、接口)
- 黑马程序员----面向对象之“抽象类”
- Effective C++ 读书笔记 条款37:绝不重新定义继承而来的缺省参数值
- 时间的复杂度和空间的复杂度
- jquery中的复选框
- 你应该关注的十个智能硬件中文网站
- Struts2三中提示错误信息的方法
- 黑马程序员——面向对象(多态与抽象类)
- 序章
- mac下搭建Cocos2d-x2.2.1 android开发环境
- thingking in Java 字符串
- 《JavaScript权威指南》学习笔记一
- HDU5063 - Operation the Sequence(离线处理)
- fristproject
- 《Javascript权威指南》学习笔记二之变量
- 《比尔盖茨全传》