java方法的继承是个什么过程
具体是个什么过程?
public class A {
public static void a() {
System.out.print("fu");
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
public class B extends A {
public static void a() {
System.out.print("sun");
}
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
老师说静态方法不存在重写,那这个a()方法已经从父类那继承了一份过来,自己再有一份不是方法重名了吗,为什么不会报错,而且我尝试吧子类B的a()方法权限改成private会报错而修改父类A的a()方法权限却不会报错?方法的继承到底是个什么过程,求达人解释!!
没有static时,
A m=new B();
m.a();输出的结果是sun,
有static时,
A m=new B();
m.a();输出的结果是fu,
因为static方法和类同时加载后,放在内存的方法区,不会因多态而改变,只被当前类引用。
方法重写规则
1.方法名称相同
2.方法参数相同
3.返回类型必须与父方法返回类型相同或为其子类
4.子方法的访问权限要比父方法访问权限大
5.子方法抛出的异常必须与父方法异常类型相同或为其子类
加个@Override你再试试。
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。这种技术使得复用以前的代码非常容易,能够大大缩短开发周期,降低开发费用。比如可以先定义一个类叫车,车有以下属性:车体大小,颜色,方向盘,轮胎,而又由车这个类派生出轿车和卡车两个类,为轿车添加一个小后备箱,而为卡车添加一个大货箱。
下一篇:请问大神们这个怎么处理啊
上一篇:HTML是代码中的基础吗??