static修饰的方法:
1、父类中的静态方法可以被继承、但不能被子类重写。
2、如果在子类中写一个和父类中一样的静态方法,那么该静态方法由该子类特有,两者不构成重写关系。
final修饰:
1、修饰类表示不允许被继承。
2、修饰方法表示不允许被子类重写,但是可以被子类继承,不能修饰构造方法。
3、修饰变量表示不允许被修改
a)方法内部的局部变量,使用前被赋值即可(只能赋值一次),没有必要非得初始化。
b)类中的成员变量(如果没有在定义时候初始化,那么只能在构造代码块中或者构造方法中赋值)
c)基本数据类型的变量(初始化赋值之后不能更改)
d)引用数据类型的变量(初始化之后不能再指向另外一个对象,但对象的内容是可以变的)
代码实例:
class Demo{
public static void display(){
System.out.println("hello");
}
public final void name()
{
System.out.println("name");
}
}
class DemoTest extends Demo{
public static void display(){
System.out.println("nihao");
}
public void tt() {
display();
}
//出现错误提示,不能被子类修改
/*public void name()
{
}*/
}
测试结果:
Demo d=new Demo();
d.display();//输出hello
d=new DemoTest();//注意观察这条语句的输出,是输出hello还是nihao
d.display();//输出hello
DemoTest dTest=new DemoTest();//使用子类,查看其方法的实现
dTest.display();//输出nihao
dTest.tt();//输出nihao
dTest.name();//输出name
结论:
static修饰的方法中,当子类对父类中的方法进行重写时,那么子类中的static方法是子类所特有的。
使用final修饰的方法,子类只有继承权,没有修改权。