java第四天
来源:互联网 发布:苹果平板看书软件 编辑:程序博客网 时间:2024/06/01 22:01
继承
[修饰符列表] class 类名 extends 父类名
java只支持单继承,默认父类Object
父类,根类,基类:super class
子类,派生类:sub class
java中继承会将父类中所有数据和方法(出父类构造方法外)全部继承,不可以直接访问父类的私有化成员。
覆盖 override
当父类方法无法满足子类需求时需要对方法进行重写(覆盖)
覆盖后调用时直接执行已重写的方法
发生条件
- 两个类存在继承关系
- 方法的返回值,方法名和参数列表完全相同
- 重写方法具有更高的访问权限
- 重写方法不能抛出 更宽的异常
- 静态方法不能重写(不存在重写)
- 私有方法不能被重写
- 构造方法不能被重写
- 重写的是方法,与成员变量无关
多态
- 向上转型 upcasting (自动类型转换)
Animal a = new Cat()
编译期:a识别为Animal类型 (静态绑定)
运行期:直接调用堆中Cat类型方法(动态绑定) - 向下转型 dowmcasting (强制类型转换)
Cat c =(Cat)a;
强制类型转换存在危险 ClassCastingExcepting - instanceof
结果为boolean型
a instanceof Cat表示引用a指向的对象是否为Cat类型
if(a instanceof Cat) Cat c =(Cat)a;
多态的优势:项目拓展能力增强
参数使用父类,可以传递更多类型的子类
super
“super.”对于已重写的方法调用父类中的原方法
super与this十分相似,但super存的不是内存地址
- super只想的不是父类的对象
- super代表当前对象的父类型特征
- super可以用在构造方法和成员方法中
- super调用时
1子类父类都用某一成员
2要在子类中访问父类的特征属性(不涉及父类对象)
super(…)
super用于构造方法,在子类中调用父类的构造方法
作用是给子类中继承的父类成员赋值
若一个构造方法没有this(…)也没有显式地调用super(…)则默认调用super()
每一个构造函数的第一行一定是super()或this()
super(…)只能放在构造方法的第一行
super()与this()不能同时出现
java中每创建一个对象就会调用Object类中的无参数构造函数
在单例模式中,因为将唯一的构造方法私有化了,所以无法继承
final
- 修饰的类不能被继承
- 修饰的方法不能被重写
- 修饰的局部变量赋值一次后不能被更改
- 修饰的成员变量必须手动初始化,然后不可更改
- 修饰的类引用不能指向其他对象,但对象的属性可以改变
static final 常量的表示方式
abstract
- 抽象类:public abstract class 类名{}
- 抽象方法:public abstract void 方法名();
- 抽象类不能被实例化
- 虽然抽象类不能实例化,但抽象类也用构造方法,用于给子类创建对象使用
- 抽象类不一定有抽象方法,抽象方法一定出现在抽象类中
- 一个非抽象类继承抽象类,必须重写抽象类的抽象方法
- 抽象类不能与abstract一起出现,以为抽象类就是用来继承的。
0 0
- java学习第四天
- 学习Java第四天
- java第四天 Eclipse
- Java第四天
- Java学习第四天
- Java基础---第四天
- java-第四天
- java学习第四天
- java第四天
- JAVA 学习第四天
- Java学习第四天
- java第四天
- Java第四天
- Java 基础 第四天
- java 第四天
- JAVA基础第四天
- JAVA基础第四天
- JAVA实训课第四天
- hive/hbase区别
- 深度学习计算机视觉资料
- 命令制作启动盘
- windows2003+apache2.2+python2.7配置django mod_wsgi
- ubuntu14.04+opencv 3.0安装及测试
- java第四天
- Skyline中的定位
- 深度剖析C语言可变参数列表
- 沈阳东网科技和福建卓智网络面试心得
- 改变的五大猜想
- error LNK1104: cannot open file 'opencv_calib3d300.lib'
- Skyline中的标注显示
- Hive_1. 数据存储 & 压缩
- 【HDU5583 2015上海赛区K】【暴力合并】Kingdom of Black and White 连续01串权值贡献为len^2最多改变一次最大权值