1.什么是静态方法?
C++中,若类的方法前加了static关键字,则该方法称为静态方法,反之为实例方法。静态方法为类所有,可以通过对象来使用,也可以通过类来使用。但一般提倡通过类名来使用,因为静态方法只要定义了类,不必建立类的实例就可使用。静态方法只能用类的静态成员。
2,静态方法的使用规则
1.静态方法只能访问类的静态成员,不能访问类的非静态成员.
2.非静态方法可以访问类的静态成员,也可以访问类的非静态成员.
3.静态方法既可以用实例来调用,也可以用类名来调用。
3..静态方法继承注意点
1.如果父类有静态方法,子类也可以通过子类名调用此静态方法.
public class qw {
public static void first(){
System.out.println("111111111");
}
}
public class qwe extends qw {
public void second() {
System.out.println("222222222");
}
}
public class qweq {
public static void main(String args[]){
qwe a=new qwe();
a.first();
qwe.first();
}
}
输出结果 111111111
111111111
2.如果子类重写父类静态方法,通过子类名访问的是子类的静态方法
public class qw {
public static void first(){
System.out.println("111111111");
}
}
public class qwe extends qw {
public void second() {
System.out.println("222222222");
}
public static void first(){
System.out.println("3333333");
}
}
public class qweq {
public static void main(String args[]){
qwe a=new qwe();
qw.first();
qwe.first();
}
}
运行结果111111111
3333333
3.如果子类重写静态方法,上转型时,访问的是父类静态方法,而实例方法,访问的是子类方法.
public class qw {
public static void first(){
System.out.println("111111111");
}
public void second() {
System.out.println("22222222");
}
}
public class qwe extends qw {
public void second() {
System.out.println("333333333");
}
public static void first(){
System.out.println("444444444");
}
}
public class qweq {
public static void main(String args[]){
qwe a=new qwe();
qw e=a;
e.first();
e.second();
}
}
运行结果:111111111
333333333