JAVA面向对象_5
一.多态
1.概念1.字面上,事物的多种形态
2.本质:一个类的对象在编译的时候并不明确使用哪个对象,只有在运行的时候才确定,父类引用数据类型指向子类的对象
2.作用:
提升对象的作用范围
3.条件
3.1向上转型
3.2必须有继承或者实现关系
4.应用领域:
4.1作为参数传入
4.2作为返回值
二.向上转型
父类的引用数据类型变量指向子类的对象
变量的获取以及使用:向上转型后:
注意的点:
1.1 拥有相同的名字的普通成员变量(包括静态变量)时,访问的是父类的
1.2 拥有相同名字的普通成员方法(非静态方法时),访问的是子类的
1.3 拥有相同名字的静态成员方法,访问的是父类的
1.4 父类的引用类型变量访问不到子类特殊的成员
如果我要访问子类的特有成员,该怎么办?
类型转型
强转:转换的两者必须存在继承或实现关系,否则不能进行。
三.懒汉式和恶汉式
1.懒汉代码:
class Single{
private int age;
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
private Single(){
super();
}
private static Single s =null;
public static Single getInstances(){
if(s=null){
s=new Single();
}
return s;
}
}
2.恶汉代码:
class Single{
private int age;
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
private Single(){
super();
}
private static Single s=new Single();
public static Single getInstances(){
return s;
}
}
四.JAVA中设计模式
1. 总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 2.在处理某些情况下一种约定俗成,并且行之有效的方法
3. 主要是为了解决在计算机内存中某个类只存在一个对象这种情况
装饰者设计模式
工厂设计模式
代理设计模式