1.多态:向上造型/重载…
一种事物多种表现形式
1.1 要有继承和实现关系–重写
1.2 重载
案例:早餐店卖包子
1.来早餐店买包子有哪些人? 美女,猛男,
2.去早餐店买 包子店
3.包子店卖包子—>人
public void sale(Beauty b){
}
public void sale(Hunks h){
}
//学生,小孩,国外友人,---->人
//变化代码—>人
//要求:1.猛男,美女都是人的子类
// 2.都必须要重写父类的方法
public void sale(Person p){
}
优势:
1.提高了代码的扩展性-遵循一个原则:里氏替换原则–>开闭原则
2.本质就是多态的一种表现形式
注意:
1.向上造型一定要记得只能调用重写的方法
2.方法调用的时候调用的是子类重写的方法
3.属性绑定的类型,方法绑定的是具体new对象!
4.方法的参数映射匹配是根据类型匹配的!!!
instanceof关键字: <向下造型>
int i=1000; Person p=new Hunks();//一个猛男的人
byte b=(byte)i Beauty b=(Beauty)p;//美女
A instanceof B 判定A的实例是B的类型,以防出现类型转换错误
//p是不是美女?
if(p instanceof Beauty){
Beauty b=(Beauty)p;
}
2.访问控制符
2.1 public:整个项目中都可以访问
2.2 默认的(不写):在同一个package中都可以访问
2.3 private:私有的,只能自己访问
2.4 protected:同包下面都可以访问,不同包的子类也可以访问
2. 非同包的类需要导包(声明)
本类自己 同一个包 非同包子类 非同包非子类
public T T T T
protected T T T F
默认的 T T F F
private T F F F
3.static 和 final
3.1 static
1.静态变量的访问方式:类名.变量名
2.静态方法的访问方式:类型.方法名()
3.静态加载内存初始化的过程会优先于new对象的过程
4.静态方法可以访问静态变量,不能访问其他非静态的变量或者方法
3.2 final–叶节点
最终的,不可再分的
1.如果final修饰类,类不能被继承
2.如果final修饰方法,该方法不能被重写
3.如果final修饰变量,这个变量是常量,并且不能再次赋值
一般如果final修饰变量,建议和static一起,这样方便使用:
1> static和final 可以任意顺序
2> static final一般用来做常量的定义,格式建议全部大写,
多个字符之间使用下划线隔开
public static final String LOGIN_NAME="登录名";