前一章,回答了java中的父类中的静态成结论是,不可继承,不可重写
本章也给出java中接口的静态成员的继承性的思考
答案:接口中的静态成员,无论是在其实现的类,还是在其子接口当中,都是不可以被继承的,也不可以被重写,即使是一样的形式,那也属于不同的内存块,属于不同的类/接口
静态成员只会在载入类的时候分配一次内存,之后就不会更改
接口文件
//关于接口中的静态方法和静态变量的继承
//本文探讨,接口如果被类实现或者是被接口继承,它的静态方法和静态数据能否被继承的问题
public interface T
{
public static final int a=0; //接口中的数据必须是常量
public static void cc()
{
System.out.println("我是父接口中的静态变量!");
}
public abstract void can();
}
实现类文件
public class S implements T
{
public static final int a=1;
public void can()
{
System.out.println("我在子类当中实现了父接口的can方法!");
}
public static void cc()
{
System.out.println("我是实现类里面的静态方法!");
}
}
主类文件
public class Q {
public static void main(String[] args)
{
S p=new S();
p.can(); //实现父类当中的抽象方法
p.cc();
T.cc(); //父类中的静态方法
System.out.println("父接口中的静态变量a:"+T.a);
System.out.println("实现类中的静态变量a:"+p.a);
}
}
运行结果