对象 多态1
Object类
1 Object
Object
是所有类的父类一个类没有使用
extends
显性的继承另外一个类,那么这个类就继承Object
示例
1 2 3 4
public class Demo1 {} // 等同 public class Demo1 extends Object { }
java.lang.Object.java
- Object();// 构造
- getClass();// 获取 class
- hashCode();// hash值
equals();// 比较地址是否相同
==
和equals()
比较==
基本类型比较变量的值是否相等
引用类型比较内存地址是否相等
equals()
Object.equals() 默认比较地址是否相等
重新后 一般 比较对象的属性是否相等 或者 自定义比较策略
- clone();// 克隆对象
- toString();// return getClass().getName() + “@” + Integer.toHexString(hashCode());
finalize();
Object finalize() 方法用于实例被垃圾回收器回收的时触发的操作。
当 GC (垃圾回收器) 确定不存在对该对象的有更多引用时,对象的垃圾回收器就会调用这个方法。
抽象类
abstract
方法无方法体,正常至少要有一个abstract
方法- 不能实例化
- 可以有构造,给子类调用
- 继承该类的
非 abstract
子类 必须实现其abstract
方法
接口
- 不能实例化
- 成员变量 隐式
static final
- 方法无具体实现且为隐式
punilc
- 实现接口的类要 实现接口所有方法
- 一个类可以实现多个接口 单只能继承一个类
多态
必要条件
继承
重新
父类引用指向子类对象
instanceof
二元操作符
判断其 左侧对象是否是右侧类的实例
1
s2 instanceof String
2 native
- 使用
native
说明这个方法是原始函数,也就是方法用 c/c++ 来实现的,并被编译成DLL,由java调用