面向对象:Java简单内存分析及三个特性:封装、继承、多态
- 简单理解内存分析
- 总结
- 对象是通过引用来操作的:栈—>堆
- 属性 : 字段Field 成员变量;默认初始化:数字 0/0.0;char u0000;boolean faulse;引用 null;
- 封装:程序设计应追求“高内聚,低耦合”;高内聚:类的内部操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用;属性私有,get&set
- 继承:本质是对类的抽象。私有无法继承。所有的类默认继承object;Java中只有单继承
JDK8新特性:表达数字时可10_0000_0000
- super:调用父类的构造方法时,要放在第一个
- 子类调用父类(公有或保护)的属性
- 子类调用父类的方法
其余的类写错也会影响项目的运行
- 方法的重写:父类的功能子类不需要或不能满足;子类的方法和父类必须一致,方法体不同
- 重写:Alt+insert->override;
- 重写存在于子父类之间,需要有继承关系;子类重写父类的方法,重写都是方法的重写,和属性无关;重写只与非静态方法,public方法有关;方法名及参数列表必须相同;修饰符:可以扩大但不能缩小(Public>Protected>Default>Private);抛出的异常:范围可以被缩小但不能扩大;
- 两处修饰符都必须相同(重写都为非静态)
- 静态方法和非静态方法的区别;静态方法:方法的调用只和左边,定义的数据类型有关
非静态方法(重写):
- 多态:实现动态编译,增强可扩展性,程序更灵活;
多态注意事项: 1. 多态是方法的多态,属性没有多态
2. 父类和子类,有联系类型转换异常! ClassCastException!
3. 存在条件: 继承关系,方法需要重写,父类引用指向子类对象! Father f1 = new Son();
对象能执行哪些方法,主要看对象左边的类型,和右边关系不大