Questions tagged «inheritance»

继承是面向对象编程中的系统,该系统允许对象支持由先前类型定义的操作,而不必提供自己的定义。它是面向对象编程中多态性的主要载体。

29
我应该如何解释接口和抽象类之间的区别?
在我的一次采访中,我被要求解释Interface和Abstract类之间的区别。 这是我的回应: Java接口的方法是隐式抽象的,不能具有实现。Java抽象类可以具有实现默认行为的实例方法。 在Java接口中声明的变量默认为final。抽象类可能包含非最终变量。 默认情况下,Java接口的成员是公共的。Java抽象类可以具有类成员的常用风格,例如private,protected等。 Java接口应使用关键字“ implements”来实现;Java抽象类应使用关键字“ extends”进行扩展。 一个接口只能扩展另一个Java接口,一个抽象类可以扩展另一个Java类并实现多个Java接口。 Java类可以实现多个接口,但只能扩展一个抽象类。 但是,面试官并不满意,并告诉我该描述表示“ 书本知识 ”。 他要求我提供更实际的答复,并通过实际示例说明何时在接口上选择抽象类。 我哪里做错了?


12
是否可以在Python中创建抽象类?
如何在Python中使类或方法抽象? 我尝试__new__()像这样重新定义: class F: def __new__(cls): raise Exception("Unable to create an instance of abstract class %s" %cls) 但是现在,如果我创建一个像这样G继承的F类: class G(F): pass 那么我也无法实例化G,因为它调用了其超类的__new__方法。 有没有更好的方法来定义抽象类?

5
在SCSS中包括另一个类
我的SCSS文件中有这个: .class-a{ display: inline-block; //some other properties &:hover{ color: darken(#FFFFFF, 10%); } } .class-b{ //Inherite class-a here //some properties } 在b类中,我想继承的所有属性和嵌套声明class-a。怎么做?我尝试使用@include class-a,但是在编译时只会抛出错误。
309 inheritance  sass 

7
使用JSP技巧可以使模板制作更容易?
在工作中,我的任务是将一堆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但是然后我需要为每个包装程序添加一个顶部和一个底部,这有点混乱。

13
为什么需要设置原型构造函数?
在MDN文章“面向对象的Java语言简介”中有关继承的部分中,我注意到它们设置了prototype.constructor: // correct the constructor pointer because it points to Person Student.prototype.constructor = Student; 这有任何重要目的吗?可以省略吗?

8
如何用Java定义自定义异常类的最简单方法?
我正在尝试以最简单的方式定义自己的异常类,这就是我得到的: public class MyException extends Exception {} public class Foo { public bar() throws MyException { throw new MyException("try again please"); } } 这就是Java编译器所说的: cannot find symbol: constructor MyException(java.lang.String) 我有一种感觉,该构造函数必须从继承java.lang.Exception,不是吗?



4
显式调用Java中的默认方法
Java 8引入了默认方法,以提供扩展接口的功能,而无需修改现有的实现。 我想知道当由于不同接口中的默认实现冲突而导致该方法的默认实现被重写或不可用时,是否可以显式调用该方法的默认实现。 interface A { default void foo() { System.out.println("A.foo"); } } class B implements A { @Override public void foo() { System.out.println("B.foo"); } public void afoo() { // how to invoke A.foo() here? } } 考虑上面的代码,您将如何A.foo()从B类的方法调用?

17
子类是否继承私有字段?
这是一个面试问题。 子类是否继承私有字段? 我回答“否”,因为我们无法使用“常规OOP方式”访问它们。但是访问者认为它们是继承的,因为我们可以间接或使用反射来访问这些字段,并且它们仍然存在于对象中。 回来后,我在javadoc中找到了以下引号: 超类私人成员 子类不继承其父类的私有成员。 你知道面试官的观点有什么论据吗?
245 java  oop  inheritance  private 

8
您如何在数据库中表示继承?
我正在考虑如何在SQL Server数据库中表示复杂的结构。 考虑一个需要存储一系列对象的详细信息的应用程序,这些对象共享一些属性,但还有许多其他不常见的属性。例如,商业保险一揽子计划可能在同一份保单记录中包括责任险,汽车险,财产险和赔偿险。 在C#等中实现此功能很简单,因为您可以创建一个带有Sections集合的Policy,其中Section是根据各种封面类型的要求继承的。但是,关系数据库似乎不允许这样做。 我可以看到有两个主要选择: 创建一个Policy表,然后创建一个Sections表,其中包含所有可能的变体所需的所有字段,其中大多数都是null。 创建一个Policy表和许多Section表,每种表一个。 这两种选择似乎都不令人满意,尤其是因为有必要在所有节中编写查询时,这将涉及大量联接或大量空检查。 这种情况下的最佳做法是什么?

8
为什么无法在Java中扩展注释?
我不明白为什么Java注释就像Java类一样没有继承。我认为这将非常有用。 例如:我想知道给定的注释是否为验证者。通过继承,我可以自反地浏览超类,以了解此注释是否扩展了ValidatorAnnotation。否则,我该如何实现? 那么,谁能给我这个设计决定的理由?


12
为什么我不能继承静态类?
我有几个不需要任何状态的类。从组织的角度来看,我想将它们分为层次结构。 但似乎我无法声明静态类的继承。 像这样: public static class Base { } public static class Inherited : Base { } 不管用。 语言的设计者为什么要关闭这种可能性?
224 c#  inheritance  static 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.