Object类
所有类的父类(包括数组)
https://docs.oracle.com/javase/8/docs/api/
equals:
相等是false因为是new关键字 指向不同空间
但是引用比较true因为string重写了equals方法,比较的是内容
如果比较one和two的值是否相同
我们需要重写equeals
不过这样传入 强行转换容易出错
这就是方法重载
注意避免空指针异常
toString()
打印出类的字符串形式
原始是这样的,包.类名@地址哈希值
这两个是一致的
重写改变输出内容和表现形式
final关键字
animal类不能被继承
final和public可以换位置
不希望方法被重写也可以加上final 可以正常被子类继承使用
也可以局部变量加final 就是常量了
方法内局部变量,只要在具体被使用之前进行赋值即可,一单赋值不运行被修改
属性前面加final那么属性不能被修改
如果定义语句为final未赋值
只能 1 构造方法 2 构造代码块
windows alt+/ 出现提示菜单
final修饰的不能被重新修改引用地址
属性可以修改
window: alt+/
修改快捷键
我们发现有一个注解
从jdk1.5引入的特性
可以声明在包、类、属性、方法、局部变量、方法参数等前面
用来对这些元素进行说明、注释
就是一种标记
@override 表示是重写父类的方法
编译后就去掉了 @override就是给编译器看的,编译完了就没了,这些就是源码注解
编译时注解 就是编译成class亦然有作用
运行时注解就是程序运行亦然起作用,会影响程序运行结果,比如说Spring的@Autowired
另外还有元注解
方法重写可以是 返回类型 不同 不过必须父类变成子类