day12
来源:互联网 发布:淘宝女牛仔裤 编辑:程序博客网 时间:2024/05/22 03:24
关于多态
- 重载和重写?多样性
对象的多态性
- 对象在编译时与运行时表现类型不一致
- 编译时,看声明的类型,看左边;运行时,看实际赋值的对象,看右边
- Father f = new Father();本态引用
- Father f = new Son(); 多态引用
- 运行的时候,会执行Son的方法
多态的前提
- 继承
- 多态引用,父类的变量指向子类的对象
- 方法的重写
关于类型转换
向上转型:子类——>父类
- 子类的对象可以赋值给父类的变量,子类的对象在编译时,就会按照父类的变量的类型进行编译检查处理
向下转型:父类——>子类(强制转换)
- 父类的变量之前必须指向该子类的对象,否则会报异常(ClassCastException)
运算符 对象 instanceof 类型
- 对象 符合类型返回true,否则返回false
关于多态的应用
- 多态数组
- 多态参数:隐含了向上转型
- 静态方法没有重写,不能多态了,只看编译时的类型
- 属性也不能重写,只有方法才可以重写
关于static
- 可以用来修饰属性、方法、代码块、内部类,不能修饰构造器;修饰属性时提供static的set/get方法
- 编写类时,描述对象和行为,并没有产生新对象
- static修饰了的变量称为类变量,否则称为实例变量
- 方法区:存储类的信息、静态数据、常量;静态的属性值是所有对象所共有的
- 方法如果和调用者无关,通常被声明为类方法,用static修饰,一般情况多用于工具类
- 非静态方法可以使用本类的静态方法
- 而静态方法却不可以使用本类中的静态方法;即静态方法中只能使用静态成员???这是因为静态成员随着类的加载初始化,而非静态成员在创建对象时才初始化,为了避免仅仅加载类而未创建对象,而不允许在静态方法中访问非静态的属性,因为有可能此时还没有分配到非静态的属性的空间和初始化它的值。
关于代码块
静态代码块:为类变量初始化,static{ … }
- 类加载并初始化的时候调用,只调用一次
非静态代码块
- 为实例变量初始化
- 创建对象的时候调用,类似于构造器,也可以称为构造块
- 多个构造器中重复的代码,可以提取到构造块中
- 在构造器之前执行
其他
native:表示本地的、原生的
- 表示这个方法不是java语言实现的,是使用C、C++实现的
- 当成普通java方法使用就好,可以被重写
final修饰的类不能被继承,final修饰的方法不能被重写
- static和final同时修饰,是全局常量
- 局部变量只能被final修饰
阅读全文
0 0
- day12
- day12
- day12
- day12
- day12
- day12
- day12
- Day12
- day12
- Day12
- day12
- day12
- day12
- day12
- Day12
- day12-笔记
- opencvAX-day12
- day12,day13
- 加密系列—Java中常用的加密方法(JDK)
- day11
- 谷歌浏览器默认最小字体的解决方法以及各浏览器对字体大小的支持
- 百炼-2973-Skew数-C语言-数制转换
- 错误解决
- day12
- CMD 模块定义规范
- C++知识总结(16)
- Easyloggingpp介绍和简单使用
- Ubuntu使用笔记
- 白话经典算法系列之七 堆与堆排序
- Java程序入门(一)
- C++知识总结(17)
- 近5年java面试题