我在我的程序中使用了实现继承,并且我的子类中的方法没有在main方法中被调用。它显示错误"The method getArea() is not defined in type Second“。getPerimeter()方法也有同样的问题。
我尝试过设置值和更改参数。
package firstproject;
import java.util.Scanner;
import java.util.Date;
import java.util.ArrayList;
public class Second{
public String color="red" ;
在浏览了一些关于多态的问题之后,似乎Java中的多态性是一种普遍的思想,它允许对象的行为就像它是另一个类的实例一样;因此代码更独立于具体的类。考虑到这个想法,下面的main()方法是否使用了多态的两个方法调用?
abstract class A
{
void f() { System.out.println("A.f()"); }
abstract void g();
}
class B extends A
{
void g() { System.out.println("B.g()"); }
}
public class Test
{
pu
我是一个Java/C#/PHP开发人员,通过我的OOP编程经验,我发现自己也在问同样的问题:为什么静态成员不能是抽象的,并且不能实现多态性,特别是在涉及工厂方法的情况下,例如:
abstract class Resource {
public void doSomething();
}
abstract class User<resource extends Resource> {
//if i want to instantiate resource,
//my only option here is to create an abstract fa
据我所知,参数多态性是一种允许对各种数据(类型)进行统一操作的技术。我的知识正确吗?
这个例子是参数多态性吗?我相信这是因为Animal.talk允许调用talk,而不考虑特定的动物类型(猫或狗)。
public interface Animal
{
public String talk();
}
public class Cat implements Animal
{
public String talk()
{
return "Cat says Meow!";
}
}
public class Dog implements Animal
{
我正在阅读罗伯特·C·马丁(RobertC.Martin)的“”( the ),对多态概念的理解有困难。
众所周知,在以前的OOP时代,有一些方法可以实现多态行为。例如,对于C(这在中已经讨论过,但我遵循(简化的)书籍示例):
// main.c
#include <stdio.h>
int main () {
int c = getchar(); // read from the standard STDIN
}
// console.c
#include "file.h" //defines struct FILE type with 5 pointe
我一直在阅读“按合同进行设计”的主题,到目前为止,我已经写了以下说明:
When strengthening a condition, it means to make it
more restrictive and weakening a condition is the opposite.
A subclass' pre-condition is either weaker or the same as its super class'
A subclass' post-condition is either stronger or the same as i
我尝试将Objectify与一组继承自抽象基类的类一起使用:
class Container {
@Id Long id;
@Embedded Set<MyAbstract> children = new HashSet<MyAbstract>();
}
@Entity
abstract class MyAbstract {
@Id Long id;
}
@Subclass class Derived1 extends MyAbstract {}
@Subclass class Derived2 extends MyAbstract {}
你知道如何为
我一直在读Dierk Koenig的"Groovy in Action“。Dierk声称这些是Java不能执行的Groovy任务:
- Changing the runtime behavior of objects after they have been created.
我还以为Java也有这个功能--动态分派。有人能解释一下它与Java有什么不同吗?
- Encapsulating logic in objects in a natural way.
这与Java有什么不同?如果你有一个明确的答案,非常感谢你花时间回复。
我正在用Java测试一个多态性。我有以下代码:
public class HelloWorld{
public static void main(String args[]){
Object o = new Circle(10.0);
doStuff(o);
}
public static void doStuff(Object myObject){
System.out.println(myObject.getArea());
}
}
class Circle{
double