1.方法的重写(override/overriding):重新写、覆盖
- 发生在父子类中,方法名相同,参数列表相同
- 重写方法被调用时,看对象的类型
(当派生类觉得超类的行为不够好时,可以重写)
我继承了一个中餐馆
class Aoo{
void do(){
做中餐
}
}
A:我还是想做中餐------------不需要重写
class Boo extends Aoo{
}
B:我想改做西餐--------------需要重写
class Boo extends Aoo{
void do(){
做西餐
}
}
C:我想在中餐基础之上加西餐-----需要重写(先super中餐,再加入西餐)
class Boo extends Aoo{
void do(){
super.do();
做西餐
}
}
2.重写与重载的区别:重点(常见面试题)
-
重写:发生在父子类中,方法名相同,参数列表相同
(一般用于在派生类中修改超类的方法) -
重载:发生在同一类中,方法名相同,参数列表不同
(是完全不同的方法,只是方法名相同而已)
3.package和import
-
package:声明包
作用:避免类的命名冲突
同包中的类不能同名,不同包中的类可以同名
类的全称:包名.类名,包名常常有层次结构
建议:包名所有字母都小写
(说明:package声明必须位于第一行) -
import:导入类
同包中的类可以直接访问,不同包的类不能直接访问,若想访问:
先import导入类,再访问类------建议
类的全称-----------------------------太繁琐,不建议
(说明:import导入类必须位于声明包的下一行)
4.访问控制修饰符
(封装的意义:隐藏一些东西,暴露一些东西,来保护数据的安全)
- public:公开的,任何类
- private:私有的,本类
- protected:受保护的、本类、派生类、同包类
- 默认的:什么也不写,本类、同包类
【1】类的访问权限只能是public或默认的
【2】类的成员的访问权限如上四种都可以
//封装的意义
class Card{
private String cardId;
private String cardPwd;
private double balance;
public boolean payMoney(double money)