标签: abstract

如何访问抽象超类实例变量

所以我有两个班:PropertyHouses.Property是抽象的超类,Houses是它的子类.

这是代码 Property

public abstract class Property{
     String pCode;
     double value;
    int year;

    public Property(String pCode, double value , int year){
        this.pCode = pCode;
        this.value = value;
        this.year = year;
    }

        public Property(){
            pCode = "";
            value = 0;
            year = 0;
        }
    public abstract void depreciation();

    //Accessors
    private String getCode(){
        return pCode;
    }
    private double getValue(){
        return value;
    }
    private int getYear(){
        return year;
    }
    //Mutators
    private void setCode(String newCode){
        this.pCode …
Run Code Online (Sandbox Code Playgroud)

java subclass super abstract

-1
推荐指数
1
解决办法
2634
查看次数

在该方法的覆盖中调用基本抽象方法

我在这里找到与我的问题类似的链接,但我似乎仍然无法理解某些内容。

public abstract class ClassA
{
     protected abstract void Method()
     {
        //some logic here
     }
}

public class ClassB : ClassA
{
     protected override void Method()
     {
          base.Method();
          // some custom logic here
     }
}
Run Code Online (Sandbox Code Playgroud)

这是我的情况,我似乎无法找出为什么我无法base.Method()从 ClassB 中的重写方法调用。错误说:“无法调用抽象基方法”。如果我不能调用它,为什么用逻辑填充和抽象基方法的功能甚至在那里?请有人向我解释我犯了什么错误,我该如何解决?

c# methods abstract

-1
推荐指数
1
解决办法
4214
查看次数

使用数组对象类抽象

我有1个问题,我无法打开我的方法,我不好低垂.我有3个类,1个是抽象的.

public abstract class Canideos {
    public abstract String ladrar();
}

public class Gato extends Canideos{
    @Override
    public String ladrar() {
        String ladrar="miau miau";
       return ladrar;
    }    
    public String miar(){
    String mi="miau a miau";
            return mi;
    }    
}
Run Code Online (Sandbox Code Playgroud)

我的动力是这样的:

Canideos cani[]= {new Cao(), new Gato()}; // it works :)
        for(int i=0;i<2;i++){
            System.out.println(cani[i].ladrar());
        }
String a;
Run Code Online (Sandbox Code Playgroud)

我的问题是这样的:/

a = (String) cani[1].Gato().miar();
a = cani[1].miar();
Run Code Online (Sandbox Code Playgroud)

我无法打开方法miar()Gato类.

java arrays methods class abstract

-1
推荐指数
1
解决办法
49
查看次数

在抽象方法的实现中不能返回抽象类的子类

我有一个抽象类的两个子类,每个子类实现一个超类的抽象方法.我希望每个都有不同的返回类型,尽管这些返回类型又是不同抽象类的子类.见下文:

public abstract class Gardener {

    public abstract ArrayList<Flower> getFlowers();
}

public class GardererA extends Gardener {

    public ArrayList<Flower> getFlowers() {
        return new ArrayList<Daisy>();
    }
}

public class GardererB extends Gardener {

    public ArrayList<Flower> getFlowers() {
        return new ArrayList<Rose>();
    }
}

public abstract class Flower {}

public class Daisy extends Flower {}

public class Rose extends Flower {}
Run Code Online (Sandbox Code Playgroud)

显然Java不会让我这样做,但我对如何获得这个功能感到茫然.有任何想法吗?

java inheritance abstract-class abstract

-1
推荐指数
2
解决办法
103
查看次数

为什么LocalDateTime可以返回实例?

LocalDateTime抽象类.所以我写不出来:

LocalDateTime value = new LocalDateTime(); //error
Run Code Online (Sandbox Code Playgroud)

如果我想得到它的实例,我必须写:

LocalDateTime value = LocalDateTime.now(); //not error
Run Code Online (Sandbox Code Playgroud)

我有一个问题,为什么LocalDateTime可以返回实例?这是一个抽象类.

我看到了概述,但我找不到它......

java abstract-class abstract java-8 java-time

-1
推荐指数
1
解决办法
451
查看次数

定义 BaseActivity 的正确方法是什么

这个问题专门针对Android和使用Activity可以由所有其他活动扩展的基础。总的来说,我了解 Java 的使用和功能abstract classes。我的情况是,我有一个基本活动,其中包含一些常用常量、函数并实现了一些Interfaces. 我的问题是应该这样abstract还是我可以让它保持正常Activity。是否有特定的原因abstract

//Standard BaseActivity 
public abstract class BaseActivity extends Activity {
   //common code
}

//Usage 
public class MyActivity extends BaseActivity {
}
Run Code Online (Sandbox Code Playgroud)

如果我将 BaseActivity 定义如下,这似乎也有效

//Non Abstract Class
public class BaseActivity extends Activity {
}
Run Code Online (Sandbox Code Playgroud)

因此,问题是否有使用抽象的特定原因。在这两种情况下,我都没有在 Manifest 中定义 BaseActivity。

android base abstract android-activity

-1
推荐指数
1
解决办法
3702
查看次数

创建扩展其他类的内部匿名类

我知道这有效:

class Main{
    public static void main(String[]args){
        AbstractClass object = new AbstractClass(){ ... };
    }
}
Run Code Online (Sandbox Code Playgroud)

它创建了一个隐式扩展AbstractClass类的对象(很明显abstract).

但是下面的工作也会这样吗?

class Main{
    public static void main(String[]args){
        ConcreteClass object = new ConcreteClass (){ ... };
    }
}
Run Code Online (Sandbox Code Playgroud)

ConcreteClass是一个不是的类abstract.

java anonymous-inner-class abstract

-2
推荐指数
1
解决办法
37
查看次数

C ++-不允许使用抽象类类型的对象

当前正在研究由可调整大小的数组控制的堆栈的实现。尝试实例化的新对象会ResizableArrayStack产生错误。

不允许抽象类类型为“ csc232 :: ResizableArrayStack”的E0322对象:ResizableArrayStack.cpp 107
            函数“ csc232 :: ResizableArrayStack :: isEmpty [with ItemType = int]”是一个纯虚函数
            函数“ csc232 :: ResizableArrayStack :: push [with ItemType = int]”是一个纯虚函数
            函数“ csc232 :: ResizableArrayStack :: pop [with ItemType = int]”是一个纯虚函数
            函数“ csc232 :: ResizableArrayStack :: peek [with ItemType = int]”是一个纯虚函数

StackInterface.h

#include "pch.h"
#pragma once
#ifndef CSC232_HW05_RESIZABLE_ARRAY_STACK_STACK_INTERFACE_H
#define CSC232_HW05_RESIZABLE_ARRAY_STACK_STACK_INTERFACE_H

namespace csc232 {
    template<typename ItemType>
    class StackInterface {
    public:
        /**
         * Sees whether the stack is empty.
         * @return True if the stack …
Run Code Online (Sandbox Code Playgroud)

c++ virtual class function abstract

-2
推荐指数
1
解决办法
191
查看次数

在泛型抽象类中实现泛型接口

界面-

interface Service<T>
{
    void foo(T t);
}
Run Code Online (Sandbox Code Playgroud)

我想创建一个实现接口的抽象Service。我不想提供Tie generic的实现。我将在抽象类的另一个子类中进行。
我应该如何声明一个带有泛型的抽象类?

abstract class AbstractService implements Service<T>
Run Code Online (Sandbox Code Playgroud)

用java不酷。

java inheritance interface abstract

-3
推荐指数
1
解决办法
99
查看次数

为什么抽象方法是抽象的?

抽象意味着隐藏数据。我不明白抽象方法如何向用户隐藏任何数据。可以提出一个论点,即抽象方法不需要实现,而是在不向用户隐藏任何内容的类层次结构的宏伟方案中。抽象方法似乎只是强制实现,所以我不明白为什么它们是抽象的。

java abstract

-3
推荐指数
1
解决办法
89
查看次数

如何在C++中创建抽象基类?

我将如何在C++中执行以下操作(以下代码是C#):

class Base
{
    public virtual void Foo()
    {
        // do stuff...
    }
}

class C : Base
{
    public override void Foo()
    {
        base.Foo(); // <=== how do you do this line?
    }
}
Run Code Online (Sandbox Code Playgroud)

c# c++ polymorphism virtual abstract

-4
推荐指数
1
解决办法
749
查看次数

使用C#中的基类和派生类在数组中实例化对象

我试图为10名运动员的"运动"抽象课程实例化对象,其中包括每个运动员的名字和年龄,然后有两个派生类别用于"网球"运动员和一个用于"高尔夫"运动员.

  class Program
    {
        static void Main(string[] args)
        {
            Sport[] athlete = new Sport[10];
            athlete[0] = new Tennis("John Smith", 18, "Tennis", 5.0, 92);
            athlete[1] = new Tennis("Lisa Townsend", 15, "Tennis");
            athlete[2] = new Tennis("Brian Mills", 17, "Tennis", 4.0, 83);
            athlete[3] = new Golf("Stacey Bell", 16, "Golf", 10, 20);
            athlete[4] = new Golf("Tom Spehr", 18, "Golf", 9, 12);
            athlete[5] = new Golf("Sam Calen", 14, "Golf");
            athlete[6] = new Tennis("Karen Strong", 17, "Tennis", 3.0, 78);
            athlete[7] = new Golf("Ken Able", 15, "Golf", …
Run Code Online (Sandbox Code Playgroud)

c# arrays abstract

-4
推荐指数
1
解决办法
604
查看次数