gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 02:15:35 25 4
gpt4 key购买 nike

我是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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com