java - java抽象类中如何返回不同的数据类型

标签 java abstract-class

我是java新手,我正在学习抽象类,但我一直停留在一个地方。

我想将不同的数据类型返回到抽象类Bank,但我不能这样做。我确实引用了 Different return types of abstract method in java without casting这个问题因为我在java方面的经验较少,因此我不明白该链接的解决方案。请任何人帮助我解决这个问题

代码

abstract class Bank{
    abstract int rateOfInterest();
}

class Icici extends Bank{
    int rateOfInterest(){
        return 8;
    }
}

class Sbi extends Bank{
    int rateOfInterest(){
        return 7;
    }
}


class Union extends Bank{
    float rateOfInterest(){
        return 9.5;
    }
}


class Interest {
    public static void main(String args[]){
        Bank uni = new Union();
        System.out.println("The rate of interest of UNION Bank is "+uni.rateOfInterest());
    }
}

错误

test.java:18: error: Union is not abstract and does not override abstract method rateOfInterest() in Bank

class Union extends Bank{ ^ test.java:19: error: rateOfInterest() in Union cannot override rateOfInterest() in Bank

float rateOfInterest(){ ^ return type float is not compatible with int

test.java:20: error: incompatible types: possible lossy conversion from double to float return 9.5; ^ 3 errors

预期输出

The rate of interest of UNION Bank is 9.5

最佳答案

您混淆/混淆了类型。

您的父方法返回类型是int,并且您在子方法中将其指定为float。那是行不通的。

将其更改为相同的数据类型。

除此之外,使用double作为利率而不是 float 利率。这是适合利率的数据类型。

abstract class Bank{
    abstract double rateOfInterest();
}

class Icici extends Bank{
    double rateOfInterest(){
        return 8;
    }
}

class Sbi extends Bank{
    double rateOfInterest(){
        return 7;
    }
}


class Union extends Bank{
    double rateOfInterest(){
        return 9.5;
    }
}


class Interest {
    public static void main(String args[]){
        Bank uni = new Union();
        System.out.println("The rate of interest of UNION Bank is "+uni.rateOfInterest());
    }
}

同样,double 也有浮点,并从此处的讨论中选择最佳数据类型 What is the best data type to use for money in Java app?

关于java - java抽象类中如何返回不同的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48576869/

相关文章:

firebase - 是否可以在 Dart 中定义一个抽象的命名构造函数?

java - 从子类对象调用抽象方法

C# 抽象类,用于数组初始化

java - 分页搜索返回的结果数量不正确

java - 在Java中实现BFS以找到从数字X到数字Z的最快方法

Java:按顺序比较三个不同的字段。像一个 SQL 数据库

c# - 为什么当我将类转换为它未实现的接口(interface)时没有编译器错误?

java - JPA/toplink 异构实体列表

java - 运行时不满意的链接错误

java - 在 Java 中使用抽象类时的编码风格