}
}
class test03 extends test02{ }
public class test {
public static void main(String[] args) {
test03 t3 = new test03();
t3.b = 2;
t3.print();
}
}
final class test02 {
int a , b;
void print() {
System.out.println("a=" + a);
}
void print1() {
System.out.println("b=" + b);
}
}
class test03 extends test02{ }
public class test {
public static void main(String[] args) {
test03 t3 = new test03();
t3.b = 2;
t3.print();
}
}
不多说了,只要写下test03 extends test02,编译器马上就会报错。
2、静态修饰符
由static修饰的成员变量或方法称为静态变量或静态方法。静态变量和静态方法都属于类,而不是属于任何具体的实例。当类中没有任何实例时,仍然可以访问静态变量和静态方法。只需要类名加”.”运算符就可以访问静态变量或调用静态方法。
1)、静态变量
静态变量也称为类变量,非静态变量称为实例变量(成员变量)。静态变量属于类,静态变量的值是保存在类的内存中的公共存储单元中,而不是保存在某一个对喜爱那个的内存空间中。当任何一个对象访问静态变量时,得到的值都是相同的。当一个对象对静态变量进行修改时,那么保存在类的内存中的公共存储单元中的值也将被修改。也就是说不管存在多少实例,静态变变量值分配一次值。下面是一个关于静态变量的实例:
[java]
class test03 {
static int a;
int b;
}
public class test {
public static void main(String[] args) {
test03 t1 = new test03();
test03 t2 = new test03();
t1.a = 1;
t1.b = 2;
t2.a = 3;
t2.b = 4;
System.out.println("t1.a=" + t1.a);
System.out.println("t1.b=" + t1.b);
System.out.println("t2.a=" + t2.a);
System.out.println("t2.b=" + t2.b);
}
}
class test03 {
static int a;
int b;
}
public class test {
public static void main(String[] args) {
test03 t1 = new test03();
test03 t2 = new test03();
t1.a = 1;
t1.b = 2;
t2.a = 3;
t2.b = 4;
System.out.println("t1.a=" + t1.a);
System.out.println("t1.b=" + t1.b);
System.out.println("t2.a=" + t2.a);
System.out.println("t2.b=" + t2.b);
}
}
我们会看到输出结果为:
t1.a=3
t1.b=2
t2.a=3
t2.b=4
2)、静态方法
静态方法也被称为类方法,一般是通过类的实例来调用静态方法。同时由于静态方法是属于类的,所以还可以通过类名来调用静态方法。下面分别通过类的实例和类名来调用静态方法。
[java]
class test03 {
static int a;
static void print()
{
System.out.println("" + a);
}
}
public class test {
public static void main(String[] args) {
test03 t1 = new test03();
t1.a = 10;
t1.print();
}
}
class test03 {
static int a;
static void print()
{
System.out.println("" + a);
}
}
public class test {
public static void main(String[] args) {
test03 t1 = new test03();
t1.a = 10;
t1.print();
}
}
在一个类中,将变量定义成静态的,同时再将方法也定义成静态的,通过类名来调用类中静态的成员方法或成员变量。下面是一个通过类名来访问本类中的静态变量和方法的实例。
[java]
class test03 {
static int a;
static void print()
{
System.out.println("" + a);
}
}
public class test {
public static void main(String[] args) {
test03.a = 10;
test03.print();
}
class test03 {
static int a;
static void print()
{
System.out.println("" + a);
}
}
public class test {
public static void main(String[] args) {
test03.a = 10;
test03.print();
}
对于静态方法在类体内可以直接被其他方法调用(包括成员方法和静态方法),在类体外可通过类名加”. ”运算符对其进行调用。静态方法能访问静态的成员变量,也能调用静态方法。但是静态方法不能访问成员变量,也不能调用非静态方法。下面是一个关于非晶态方法访问静态变量的实例:
[java]
class test03 {