java中的static 关键字与多态
来源:互联网 发布:知念和凉介抱在一起睡 编辑:程序博客网 时间:2024/06/05 18:31
1:static 关键字
静态的 与具体的对象无关,归类所有的,全局的,归类的所有对象共享的
通过类名.静态属性或者方法来访问
非静态的方法中可以访问静态的属性
静态方法中不可以访问非静态属性
静态的部分先放到内存中,不是静态的东西是不会放到内存的,必须用new关键字来放到内存中
类的加载顺序:
单个类:静态属性与方法 普通属性与方法 构造器
继承关系中:
父类的静态属性与方法 子类的静态属性与方法
父类的普通属性与方法 父类构造器
子类的普通属性与方法 子类构造器
static修饰符
static修饰符能够与属性、方法和内部类一起使用,表示静态的。类中的静态变量和静态方法能够与类名一起使用,不需要创建一个类的对象来访问该类的静态成员,所以,static修饰的变量又称作“类变量”。
static属性的内存分配
一个类中,一个static变量只会有一个内存空间,虽然有多个类实例,但这些类实例中的这个static变量会共享同一个内存空间。
static的变量是在类装载的时候就会被初始化,即,只要类被装载,不管是否使用了static变量,都会被初始化。
static的基本规则
·静态方法中不存在当前对象,因而不能使用this,也不能使用super
·静态方法不能被非静态方法覆盖
·构造方法不允许声明为static的
static的基本规则
·一个类的静态方法只能访问静态属性
·一个类的静态方法不能直接调用非静态方法,但是非静态方法中可以调用静态方法
·如访问控制权限允许,static属性和方法可以使用类名加“.”的方式调用,也可以使用实例加“.”的方式调用·静态方法中不存在当前对象,因而不能使用this,也不能使用super
·静态方法不能被非静态方法覆盖
·构造方法不允许声明为static的
注,非静态变量只限于实例,并只能通过实例引用被访问。
2.多态: (同一种行为体现出来不同的状态)
1.编译期的多态 方法的重载 overload
在同一个类中,方法名相同,参数列表不同 与返回值类型无关
参数列表不同包括:参数个数不同
参数类型不同
在调用的时候 系统会根据调用者的参数自动识别该调用的方法
在同一个类中 不允许出现方法名相同 参数列表也相同的方法
也不允许出现方法名相同 参数列表也相同但返回值类型不同的方法
2.运行期的多态 方法的重写 Override
在继承关系当中子类对父类的方法重新实现
方法名相同 参数列表也相同
1.返回值类型与父类相同或者可以自动隐式转换成父类的返回值类型
2. 访问修饰符的权限不能低于父类的访问权限(public最高)
3.子类抛出的异常不能高于父类抛出的异常
注:基本类型不能转换,必须保持一致
0 0
- java中的static 关键字与多态
- Java中的static关键字
- JAVA中的static关键字
- JAVA中的static关键字
- java中的static关键字
- java中的static关键字
- Java中的static关键字
- Java 中的 static 关键字
- java中的static关键字
- Java中的static关键字
- java中的static关键字
- Java 中的static关键字
- JAVA中的static关键字
- java中的static关键字
- java中的static关键字
- java中的static关键字
- Java中的static关键字
- java中的static关键字
- ES6学习笔记:箭头函数
- tensorflow31《TensorFlow实战》笔记-04 TensorFlow实现自编码器及多层感知机 code
- Linux性能及调优指南(翻译)之Linux内存架构
- OSPF---路由备份的设计实验
- 登录界面中密码与用户名的保存
- java中的static 关键字与多态
- 第四章 接口
- The type java.xxx.Xxx cannot be resolved. It is indirectly referenced from required.class
- ueditor--JSP使用
- nyoj1276机器设备(河南省第九届ACM省赛)
- 产品经理OR售前支持
- Java虚拟机JVM性能优化(二):编译器
- 构造器(构造方法)问题
- 架构师之路--线程基础--多个线程多把锁