就Java而言,当有人问:
什么是多态性?
将超载或重载是一个可以接受的答案?
我认为还有更多。
如果你有一个抽象基类,它定义了一个没有实现的方法,并且你在子类中定义了该方法,那该方法是否仍然覆盖?
我认为过载不是肯定的正确答案。
表达多态性的最清晰方法是通过抽象基类(或接口)
public abstract class Human{
...
public abstract void goPee();
}
此类是抽象的,因为该goPee()
方法不适用于人类。只有男性和女性子类别才可以定义。同样,人类是一个抽象的概念—你不能创造既不是男性也不是女性的人类。它必须是另一个。
因此,我们通过使用抽象类推迟实现。
public class Male extends Human{
...
@Override
public void goPee(){
System.out.println("Stand Up");
}
}
和
public class Female extends Human{
...
@Override
public void goPee(){
System.out.println("Sit Down");
}
}
现在我们可以告诉充满人类的整个房间撒尿。
public static void main(String[] args){
ArrayList<Human> group = new ArrayList<Human>();
group.add(new Male());
group.add(new Female());
// ... add more...
// tell the class to take a pee break
for (Human person : group) person.goPee();
}
运行此将产生:
Stand Up
Sit Down
...
也许我对概念感到困惑,但是重写和在子类中创建一个新方法之间有什么区别呢?重写不就是在子类中创建一个不同于父类的新的特定方法吗?但这难道不是在子类中创建一个新方法所要做的吗?
也许我对概念感到困惑,但是重写和在子类中创建一个新方法之间有什么区别呢?重写不就是在子类中创建一个不同于父类的新的特定方法吗?但这难道不是在子类中创建一个新方法所要做的吗?
日安, 我对Java相当陌生。我开始学习的第一门语言是C++。在C++中,我使用了一个新的.cpp文件将代码分散到多个文件中,这样代码就不会太过聚集。我只会在需要的时候使用classes(例如,根据学生的姓名、地址、电话号码等对一所学校的学生进行分类)。但是现在我改成了Java,当我不想对某些东西进行分类时,我很难理解如何使用类。假设我想将代码分散在多个.java文件中,这样它就不会被聚集。当创建
问题内容: 在另一个Bruce Eckel练习中,我编写的代码采用一种方法并更改另一个类中的值。这是我的代码: 它抛出一个错误,提示“可能会丢失精度”。 无法S为S作为呢? 提前致谢 问题答案: 是的,但是您必须指定它们是浮点数,否则将它们视为双精度数: 数字末尾的“ f”使其成为浮点数而不是双精度数。 Java不会自动将double范围缩小为float。
结果: 为什么piF和piD不相等呢?实际上是什么使两者相同?
ArrayList和LinkedList有什么区别?我在纽伯顿看了一段视频,但我还是很困惑。请用简单的英语回答。请不要使用任何高级代码。