我是java新手,我正在学习抽象课程,但我被困在了一个地方。
我想将不同的数据类型返回到抽象类Bank
,但我做不到。我确实在java中参考了抽象方法的不同返回类型,但没有提出这个问题,因为我在java方面的经验较少,因此我不明白该链接的solution.Please有人帮我解决这个问题。
密码
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());
}
}
错误
测试.java:18: 错误: 联合不是抽象的, 不会覆盖抽象方法率对银行的兴趣()
类Union扩展Bank{ ^ test.java:19:错误:Union中的rateofinest()不能重写Bank中的rateofinest()
float rateofinest(){ ^返回类型float与int不兼容
test.java:20:错误:不兼容的类型:从双精度到浮点数的可能有损转换返回9.5;^3错误
预期产出
The rate of interest of UNION Bank is 9.5
甚至这个解决方案也可以帮助你。正如我在这里提到的,double是更高的类型,它按照你的期望存储int、float值。
abstract class Bank{
abstract Double rateOfInterest();
}
class Icici extends Bank{
Double rateOfInterest(){
return 8d;
}
}
class Sbi extends Bank{
Double rateOfInterest(){
return 7d;
}
}
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());
}
}
您可以从双倍投射所需的类型。
在您的银行类中,利息率() 返回整数值,您的利息()利率返回浮点值。
在子类中实现抽象方法时,返回的类型应为较高类型,而不应为较低类型。
为了解决这个问题,您可以将返回类型从int改为float,如下所示
abstract float rateOfInterest();
否则,将返回类型更改为 int,从 Union 类中的浮点数更改为 int,如下所示
int rateOfInterest(){
return 9;
}
你混淆了类型。
您的父方法返回类型是int
,并且在children中将其作为float
。那不行。
在任何地方都将其更改为相同的数据类型。
除此之外,使用Double
表示利率而不是浮动。这是利率的合适数据类型。
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());
}
}
再次双精度也有浮点,并从这里的讨论中选择最好的数据类型 什么是在Java应用程序中用于赚钱的最佳数据类型?
我正在尝试实现和重写具有不同返回类型的方法,而不会被迫转换返回类型。 我的问题:是否可以在不强制强制转换的情况下返回不同的类型?解决这个问题的抽象方法看起来怎么样? 我认为必须有一个解决方案,因为编译器应该知道返回类型...
在那里,我被告知接口和抽象类除了方法签名(名称、参数)和返回类型之外没有实现/方法体,所以通常我们写: 然而,我想知道我们能不能这样写: 因为它表明,当我们创建接口或抽象类时,返回类型可以在方法中
只是延伸问题... 抽象类和接口中的相同方法 假设一个类实现了一个接口并扩展了一个抽象类,两者都有相同的方法(名称签名),但返回类型不同。现在,当我重写方法时,只有当我使返回类型与接口声明相同时,它才会编译。 另外,如果该方法在抽象类或接口中声明为private或final,会发生什么情况? **旁注。在一次采访中,爱因斯坦先生在这个问题上坚持了相当长的时间。有没有一个流行的场景,我们这样做,或者
问题内容: 。 将返回String和int值。因此,我从这些返回值中得出了以下解决方案。 建立课程通话 并进行如下更改。 现在我的问题是,有没有更简单的方法来实现这一目标? 问题答案: 最后,我认为我的方法会更好,因为当返回类型的数量增加时,这种实现会以最佳方式实现。
. 将返回字符串和int值。从中获取这些返回值,我想出了以下解决方案。 创建一个类调用返回值 并更改,如下所示。 现在我的问题是,有没有更简单的方法来实现这一点??