abstract class A { abstract float getFloat ();void f() {}}public class B extends A { private float m = 1.0f; private float getFloat () {return m;}有问题吗?
时间: 2024-01-30 10:04:05 浏览: 26
这段代码在语法上没有问题,但是在实际使用时可能会出现一些问题。首先,类A中的抽象方法getFloat()没有实现,因此类A本身也必须被声明为抽象类。其次,在类B中,getFloat()方法的访问修饰符应该与其在类A中的声明相同,即public。另外,由于类B继承自类A,因此它应该实现类A中的所有抽象方法,否则类B也必须被声明为抽象类。最后,类型float应该使用大写字母F,而不是小写字母f。以下是修改后的代码:
```
abstract class A {
public abstract float getFloat();
public void f() {}
}
public class B extends A {
private float m = 1.0F;
public float getFloat() {
return m;
}
}
```
这段代码现在应该可以正常工作,并且类B实现了类A中的抽象方法getFloat()。
相关问题
1.下面程序运行的结果 #include <iostream> using namespace std; class test{ private: int num; float f1; public: test(){cout<<"Initalizing default"<<endl;num=0;f1=0.0;} int getint(){return num;} float getfloat(){return f1;} ~test(){cout<<"Destructor is active"<<endl;} }; int main() { test array[2]; cout<<array[1].getint()<<" "<<array[1].getfloat()<<endl; return 0; }
程序的输出结果为:
```
Initalizing default
Initalizing default
0 0
Destructor is active
Destructor is active
```
程序中定义了一个名为`test`的类,包含一个默认的构造函数、一个获取整型成员变量的函数`getint()`、一个获取浮点型成员变量的函数`getfloat()`以及一个析构函数。
在`main()`函数中,定义了一个名为`array`的`test`类型的数组,数组的长度为2。因为没有给数组元素指定具体的值,所以会调用默认构造函数进行初始化,因此会输出两次"Initalizing default"。
接着,程序输出了`array[1]`的整型成员变量和浮点型成员变量,由于没有给数组元素指定具体的值,所以这两个成员变量的值都为0。
最后,`main()`函数结束,程序自动调用两次析构函数,输出"Destructor is active"。
如何使用SharedPreferences存储和读取 float数组
您可以使用SharedPreferences.Editor类中的putFloat()和getFloat()方法,将float数组存储为字符串,并将其保存在SharedPreferences中。以下是一个示例代码:
// 存储float数组
SharedPreferences sharedPreferences = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
float[] floatArray = new float[]{1.5f, 2.5f, 3.5f};
String floatString = Arrays.toString(floatArray);
editor.putString("floatArray", floatString);
editor.apply();
// 读取float数组
SharedPreferences preferences = getPreferences(Context.MODE_PRIVATE);
String savedString = preferences.getString("floatArray", "");
float[] savedFloats = Float.parseFloat(savedString.substring(1, savedString.length() - 1).split(", "));
// 注意:这种方法只适用于小型数组,对于大型数组,建议使用其他方法。