可能重复:
如何向String []数组添加新元素?
如何将新项添加到String数组中?我正在尝试将项添加到最初为空的String.示例:
String a [];
a.add("kk" );
a.add("pp");
Run Code Online (Sandbox Code Playgroud) SuperClass object = new SubClass();
Run Code Online (Sandbox Code Playgroud)
为什么使用超类来实例化上面的子类对象?因为我学习实例化对象的唯一方法是:
SubClass object = new SubClass();
Run Code Online (Sandbox Code Playgroud)
我正在学习java.
在Java中,是否可以声明其类型为多个接口的字段/变量?例如,我需要声明一个Map也是Serializable.我想确保变量引用可序列化的映射.该Map接口不延长Serializable,但大部分Map的实现是Serializable.
我很确定答案是否定的.
后续:我充分意识到创建同时扩展新的界面Map和Serializable.这不起作用,因为现有的实现(例如HashMap)不实现我的新接口.
我经常听到/阅读基于接口的编程,但我并不清楚这究竟意味着什么.基于接口的编程是一个真正独立的主题,实际上有关于它的书籍吗?如果是这样,有人可以推荐任何好的吗?
我遇到了基于接口的编程,因为我正在阅读有关如何设计好API并希望了解它的更多信息.现在我不清楚如何正确地设计围绕接口的API.
任何信息都非常感谢.
我试图找到一个数据结构,从一系列值中获取特定值并将其映射到一个键.
例如,我有以下条件:
我的值为5,我想将其映射到一个键.所以基于上述条件,我应该将它映射到B.
Java中是否有任何人可以向我推荐解决问题的数据结构?
目前我使用的哈希表只能将值映射到键.我尝试将值范围映射到哈希表中存在的特定值.但是,我陷入了将值范围映射到特定值的问题.所以现在我试图用另一种方法将值的范围映射到键.有谁知道如何解决这个问题?
编辑:
感谢Martin Ellis,我决定使用TreeMap来解决这个问题.
假设我有两个类:Animal和Dog.狗是动物的一个子类.我执行以下代码:
Animal a = new Dog();
Run Code Online (Sandbox Code Playgroud)
现在我可以通过一个变量调用Dog类的方法.
但我的问题是:如果我可以通过Dog对象(继承)调用所有Animal的方法而不是为什么我应该使用多态原理?我可以宣布:
Dog d = new Dog();
Run Code Online (Sandbox Code Playgroud)
有了这个声明,可以使用Animal的所有方法和Dog方法.那么为什么要使用多态?非常感谢您的回答.
假设你有一个界面
public interface Change {
void updateUser();
void deleteUser();
void helpUser();
}
Run Code Online (Sandbox Code Playgroud)
我已经读过接口是Java实现多重继承的方式.您实现了一个接口,然后您可以访问其方法.我不明白的是,这些方法在界面中没有任何主体,所以你需要在你的类中给它们一个主体.因此,如果您的接口由多个类实现,则需要在多个类中为该方法提供一个主体.为什么这比在类中使用单独的方法更好,而不是实现接口?
这是一个真正的初学者问题(我还在学习Java基础知识).
我可以(有点)理解为什么方法会返回List <String>而不是ArrayList <String>,或者为什么它们会接受List参数而不是ArrayList.如果它对方法没有影响(即,如果不需要ArrayList中的特殊方法),这将使该方法更灵活,更容易用于调用者.其他集合类型也是如此,例如Set或Map.
我不明白的是:通常的做法是创建这样的局部变量:
List<String> list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
虽然这种形式不太常见:
ArrayList<String> list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
这有什么好处?
我只能看到一个小缺点:必须添加java.util.List的单独"import"行.从技术上讲,可以使用"import java.util.*",但我也不经常看到,可能是因为某些IDE自动添加了"import"行.
我想巩固我对"编码到界面"概念的理解.据我所知,一个人创建界面来描述预期的功能,然后在具体的类中实现这些"契约".要使用接口,可以简单地在具体类的实例上调用方法.
显而易见的好处是了解具体类提供的功能,而不管其具体实现如何.
基于以上内容:
谢谢.
我今天在这里找到了一个问题,它为我提出了这个问题.
这是我所得到的伪代码示例:
class Car{
public:
virtual int goFast() = 0;
};
class FordFocus : public Car {
public:
int goFast(){
return 35;
};
};
class Lamborghini : public Car {
bool roof;
public:
int goFast(){
return -1/0; // crash
};
void retractTheRoof(){
roof = 0;
};
};
class RichGuy {
vector<Car *> cars;
public:
void goDrive() {
for(int i = 0; i < cars.size(); ++i) {
if(Lamborghini* lambo = dynamic_cast<Lamborghini*>(cars[i])) {
lambo->retractTheRoof();
};
goFast();
};
};
};
Run Code Online (Sandbox Code Playgroud)
在示例中,有一个 …
java ×8
interface ×3
oop ×2
polymorphism ×2
.net ×1
arrays ×1
c# ×1
c++ ×1
declaration ×1
dictionary ×1
range-map ×1
variables ×1