基础学习的第三天
1. 多态
2. 内部类
3. 单例模式
4. 枚举
多态
多态的体现: 同一个行为,具有不用的表现形式
多态的前提: 1.有继承或者实现 2.要有方法重写 3.父类引用指向子类对象(接口引用指向实现类对象)
多态的访问特点:
变量: 编译时看左边,运行时看左边
方法: 编译看左边,运行时看右边
多态优缺点:
优点:
1.实现组件化或代码解耦
2.当方法形参为父类或者接口时,调用方法时就可以传入任何子类对象或者实现类对象
缺点:
多态的情况下,无法使用子类独有的功能(规范和统一功能的调用)
类型转换:
1.向上转型(自动转换,子类转父类)
2.向下转型(强制转换,父类转子类)
格式: 子类 对象=(子类)父类引用
弊端: 容易造成类型转换异常
解决办法: 强转前做判断
格式: 对象 instanceof 类
判断对象是否属于类,属于返回true
内部类:
静态内部类:
定义格式:
public class 外部类名{
public static class 内部类名{
}}
组成结构: 类的所有成分都可以定义在静态内部中
创建对象:外部类名.内部类名 对象 = new 外部类名.内部类名();
成员内部类:
定义格式:
public class 外部类名{ public class 内部类名{ }}
组成结构: 成员内部类只能定义非静态成员,不能定义静态成员(静态常量可以定义)
创建对象: 外部类名.内部类名 对象 = new
外部类名().内部类名()
局部内部类:
定义在方法,代码块,构造器里面的类,只能在定义的语法结构内使用(鸡肋语法没必要记忆)
匿名内部类:
格式:
new 接口名/抽象类名(){ 重写抽象方法 }
应用: 当方法的形参时接口或者抽象类时,实参可以使用匿名内部类传递
单例模式
作用: 保证一个类只能创建一个对象
实现方式:
饿汉式单例:
1.私有类的构造方法
2.定义静态变量,并创建对象
3.提供静态方法,返回唯一对象
> 懒汉式单例:
1.私有类的构造方法
2.定义静态变量,不创建对象
3.提供静态方法,返回唯一对象,在返回前做判断,如果对象为null,进行创建
枚举
> 作用:
进行数据的规范和信息的分类
有限数据的集合,可以使用枚举表示,比如性别,季节,星期,月份等数据
格式:
public enum 枚举名{
列举枚举值
}
> 使用:
枚举名 枚举值