final关键字static关键字
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了final关键字static关键字相关的知识,希望对你有一定的参考价值。
final关键字
继承带来了好处,同时也会有弊端出现,比如有的时候我们不需要继承某些类或者类中成员的时候,就可以用到final的修饰了,它可以修饰类,成员变量,成员方法,以及局部变量。final的意思就是最终的意思,被他修饰的成员变量会变成一个不能改变值的常量,被他修饰的成员方法不能被子类所重写,被它修饰的类不能被继承。
final的特点:
1、 被final修饰的类,不能被其它的类继承,也就是说它是一个最终类,但是这个类可以继承其他类。
2、 被final修饰的方法,不能被其子类所重写,可以被子类所继承。
3、 被final修饰的局部变量,终生不能被改变。
4、 被final修饰的成员变量,只能赋值一次。
static关键字
需要实现对象的共享数据时,需要在数据前面加上static 修饰。也就是说姓名和年龄是一个人特有的数据,那么这个人的国籍就是共有的数据国籍前面就要加static修饰。下面用一段代码来演示:
? Person类
package cn.itcast.Static关键字01; /* * 被static修饰的成员变量和不被修饰的成员变量的区别演示 */ public class Person { //共有属性姓名 String name; //共享属性国籍 static String country; }
? Test测试类
package cn.itcast.Static关键字01; public class Test { public static void main(String[] args) { //创建Person对象,调用共有属性和共享属性看他的运行结果 Person p1 = new Person(); Person p2 = new Person(); p1.name = "李四"; p2.name = "王五"; System.out.println(p1.name); System.out.println(p2.name); //static修饰的共享属性 p1.country = "中国"; System.out.println(p1.country); System.out.println(p2.country); //static修饰的属性可以用类名直接调用 System.out.println(Person.country); } }
运行结果:
静态的注意事项:静态成员不能调用非静态成员,因为静态成员是优先于对象存在的,调用的非静态成员是创建对象后才存在的。
多态调用中,编译看谁,运行看谁?
1、编译都看等号左边的父类
2、运行,静态方法,运行静态中的静态方法
3、运行,非静态方法,运行子类中的重写方法
4、成员变量,编译运行全是父类。
定义静态常量的格式:public static final 数据类型 变量名 = 值;
注意:定义final常量它的变量名全部大写,两个单词之间用下划线连接。
以上是关于final关键字static关键字的主要内容,如果未能解决你的问题,请参考以下文章
final与static关键字的区别?(skycto JEEditor)