Java继承一个注意的地方

来源:互联网 发布:php java 常驻内存 编辑:程序博客网 时间:2024/04/19 17:46
class Base{private Base(){}public  Base(String str){test();}private void test()           //①号test方法{System.out.println("将被子类重写的方法");}}public class Sub extends Base{/*** @param str*/public Sub(String str){super(str);// TODO Auto-generated constructor stub}private<span style="color:#ff0000;"> static</span> String name;public void test()        //②号test方法{System.out.println("子类重写父类的方法,"+ "其name字符串长度" + name.length());}public static void main(String[] args){Sub s = new Sub(<span style="color:#ff0000;">name</span>);}}


可以看到输出结果将是“将被子类重写的方法”

解释:因为1号test方法是被private修饰的,所以不能被子类继承,与2号的test方法并不构成重写关系,因此并不会发生空指针异常

这里要注意红色部分需要定义成static类型的

1 0
原创粉丝点击