我经常阅读堆栈溢出这个语句。 就我个人而言,我没有发现任何问题,除非我以多形的方式使用它; 即我必须使用virtual析构函数。 如果我想扩展/添加标准容器的功能,那么比继承一个更好的方法是什么? 将这些容器包装在一个自定义类中需要更多的努力,并且仍然不干净。
class Dad { protected static String me = "dad"; public void printMe() { System.out.println(me); } } class Son extends Dad { protected static String me = "son"; } public void doIt() { new Son().printMe(); } 功能doIt将打印“爸爸”。 有没有办法让它打印“儿子”?
这是一个面试问题。 子类是否继承私人领域? 我回答“否”,因为我们无法使用“正常OOP方式”访问它们。 但面试官认为他们是被遗传的,因为我们可以间接地访问这些领域或使用反思,他们仍然存在于对象中。 回来之后,我在javadoc中找到了下面的引用: 私人会员超级 子类不会继承其父类的私有成员。 你知道面试官的意见吗?
在工作中,我负责将一堆HTML文件转换成一个简单的JSP项目。 这实际上都是静态的,没有编程的逻辑。 我应该提到我对Java完全陌生。 JSP文件似乎可以很容易地处理常见的包含和变量,就像PHP一样,但是我想知道一个简单的方法来获得像模板继承( Django风格)或至少能够有一个base.jsp包含页眉和页脚的文件,所以我可以稍后插入内容。 Ben Lings似乎在他的回答中提供了一些希望: JSP模板继承有人可以解释如何实现这一点? 考虑到我没有太多的时间,我认为动态路由有点多,所以我很高兴能够将URL直接映射到.jsp文件,但我愿意提供建议。 谢谢。 编辑:我不想使用任何外部图书馆,因为这会增加我和其他从事这个项目工作的人的学习曲线,而且我工作的公司已经签约了。 另一个编辑:我不确定JSP tags是否有用,因为我的内容没有任何模板变量。 我需要的是一种能够做到这一点的方法: base.html: <html><body> { content.body } </body></html> somepage.html <wrapper:base.html> <h1>Welcome</h1> </wrapper> 输出是: <html><body> <h1>Welcome</h1> </body></html> 我想这会给我足够的多功能性去做我需要的一切。 它可以实现与includes但是然后我需要一个顶部和底部包括每个包装,这是一种凌乱。
有什么区别: class Child(SomeBaseClass): def __init__(self): super(Child, self).__init__() 和: class Child(SomeBaseClass): def __init__(self): SomeBaseClass.__init__(self) 我已经看到super被用在相当多的类只有单一的继承。 我可以看到为什么你会用它来进行多重继承,但是对于在这种情况下使用它的好处还不清楚。