1、成员变量和局部变量的区别
成员变量:
- 定义在类中 方法外
- 成员变量有定义会有默认值
- 作用范围为整个类
- 成员变量位于堆内存(了解)
- 随着对象创建而诞生(了解)
局部变量: - 定义在方法中
- 局部变量必须赋值 否则就会报错
- 作用范围为方法内
- 局部变量位于栈内存(了解)
- 随着方法进栈而诞生 出栈而消亡
2.方法的重载和重写
重写: - @overraid
- 参数列表必须完全相同
- 子类对父类的重写
- 返回值类型可以不同(1.7版本以后)
- 访问权限要高于或等于父类
- 声明为final的方法不能重写
- 声明为 static 的方法不能被重写,但是能够被再次声明
- 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为 private 和 final 的方法
- 子类和父类不在同一个包中,那么子类只能够重写父类的声明为 public 和 protected 的非 final 方法
- 重写的方法能够抛出任何非强制异常,无论被重写的方法是否抛出异常。但是,重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常,反之则可以。(了解)
- 构造方法不能被重写
- 如果不能继承一个方法,则不能重写这个方法。
重载:
- @overload
- 必须改变参数列表 个数或者类型都可以
- 可以改变返回值类型
- 可以改变访问修饰符
- 声明新的检查异常
- 能在同一个类或者子类中被重载
- 不能以返回值类型作为函数重载的区分标准
3.面向对象继承 - 对象作为参数传递是 传递的是其地址值
- java是单继承模式 即一个类只能有一个直接的父类
- java语言可以多级继承
- 一个子类的直接父类只能有一个,但是一个父类可以有多个子类