Tag: 抽象类

创建抽象类和接口的对象

有人能告诉我,我怎样才能创建抽象类和接口的对象。 我所知道的是,我们无法对absract类和接口进行诠释。 谢谢和问候,gautam

抽象类: – 实时例子

最近在一次采访中我被问到一个非常笼统的问题“java中的抽象是什么”。我给出了定义,然后在摘要上引入了一些其他问题,如抽象方法和抽象方法与具体方法之间的区别等。最后,面试官要求给出一个实时的例子,当我应该使用或定义一个类作为抽象时。我感到困惑。我举了一些例子,但他不相信。 我用谷歌搜索,但没有找到真正的解决方案。 那么有人可以给我实时的例子,即当他在他/她的项目中将一个类定义为抽象时,为什么? 谢谢。

为什么在Java中的抽象类中存在私有访问修饰符,即使我们无法创建抽象类的实例?

我知道在abstract类中将方法声明为private不是一个好的编码实践。 即使我们无法创建abstract类的实例,为什么private访问修饰符在abstract类中可用,它在abstract类中的范围是什么? 在哪种情况下, abstract类中使用的private访问说明符? 看看这个代码,其中Vehicle类是抽象的, Car扩展了Vehicle。 package com.vehicle; abstract class Vehicle { // What is the scope of the private access modifier within an abstract class, even though method below cannot be accessed?? private void onLights(){ System.out.println(“Switch on Lights”); } public void startEngine(){ System.out.println(“Start Engine”); } } Within是创建Car类的相同包 package com.vehicle; /* * Car class extends […]

何时初始化实例变量并分配值?

当doees实例变量初始化? 是在构造函数块完成之后还是之前? 考虑这个例子: public abstract class Parent { public Parent(){ System.out.println(“Parent Constructor”); init(); } public void init(){ System.out.println(“parent Init()”); } } public class Child extends Parent { private Integer attribute1; private Integer attribute2 = null; public Child(){ super(); System.out.println(“Child Constructor”); } public void init(){ System.out.println(“Child init()”); super.init(); attribute1 = new Integer(100); attribute2 = new Integer(200); […]

如何将TimerTask与lambdas一起使用?

正如您所知,您可以在Java 8中使用lambdas,例如替换匿名方法。 这里可以看到Java 7与Java 8的一个例子: Runnable runnable = new Runnable() { @Override public void run() { checkDirectory(); } }; 在Java 8中可以表示为以下两种方式: Runnable runnable = () -> checkDirectory(); 要么 Runnable runnable = this::checkDirectory; 这是因为Runnable是一个function接口,只有一个(抽象)公共非默认方法。 但是……对于TimerTask我们有以下内容: TimerTask timerTask = new TimerTask() { @Override public void run() { checkDirectory(); } }; 看起来很熟悉吧? 但是使用lambda表达式不起作用,因为TimerTask是一个抽象类,即使它只有一个抽象的公共非默认方法,它也不是一个接口,因此也没有function接口。 它也没有重构为具有默认实现的接口,因为它带有状态,因此无法完成。 所以我的问题 :在构造TimerTask时有没有办法使用lambdas? 我想要的是以下内容: Timer […]

java中接口的实际用途是什么?

可能重复: 抽象类和接口类? Java:接口/抽象类/抽象方法 在Java中,抽象类实现了对接口的任何使用。 我知道接口的一个优点是,如果我们实现一个接口,那么我们也可以扩展另一个类。 Java中是否有任何其他用途或优势?

为什么在java中嵌套抽象类

我想知道有一个嵌套的抽象类是什么意思? 例如, abstract class A{ abstract class B{ } } 是否存在我们可能需要的用例或场景,例如设计? 或者这种模式中有用的东西吗? 为什么Java允许我们这样做?

理解Java中抽象类的目的

假设我有两个类,A和B.A类被定义为抽象,而B扩展了这个抽象类,最后我测试了结果,两个类都是同一个包的一部分。 public abstract class A { protected abstract void method1(); protected void method2() { System.out.println(“This is Class A’s method”); } } public class B extends A { @Override protected void method1() { System.out.println(“This is B’s implementaiton of A’s method”); } } 现在当我测试它们时: B b = new B(); b.method1(); b.method2(); 我得到预期的输出: This is B’s implementaiton of […]

类不是抽象的,不会覆盖抽象方法

所以我一直在为编程课做抽象作业,但遇到了问题。 我现在的目标是能够使用抽象,然后能够用矩形和椭圆形绘制一个简单的城市,如矩形建筑物或灯柱上的椭圆形灯。 我编译时收到的错误是:MyTestApp.Rectangle不是抽象的,并且不会覆盖MyTestApp.Shape中的抽象方法drawEllipse(java.awt.Graphics)。 此错误显示在类Shape下方的“类Rectangle extends Shape {”行中。 我的问题是我的抽象错误是什么? 我一直在搞乱Rectangle和Ellipse类中的构造函数和draw()方法一段时间,但仍然没有找到解决方案的运气。 代码如下: import java.awt.*; import javax.swing.*; public class MyTestApp extends JPanel { Rectangle rect; Ellipse oval; public static void main(String [] args) { MyTestApp myTestApp = new MyTestApp (); myTestApp.test(); } public MyTestApp () { //creates the jframe JFrame frame = new JFrame(“MyClass Driver”); setBackground(new Color(200, 250, […]