相关疑难解决方法(0)

静态绑定和动态绑定

我对动态绑定和静态绑定感到困惑.我已经读过在编译时确定对象的类型称为静态绑定,在运行时确定它称为动态绑定.

以下代码中会发生什么:

静态绑定还是动态绑定?
这显示了什么样的多态性?

class Animal
{
    void eat()
    {
        System.out.println("Animal is eating");
    }
}

class Dog extends Animal
{
    void eat()
    {
        System.out.println("Dog is eating");
    }
}

public static void main(String args[])
{
    Animal a=new Animal();
    a.eat();
}
Run Code Online (Sandbox Code Playgroud)

java oop polymorphism dynamic-binding static-binding

30
推荐指数
2
解决办法
3万
查看次数

对功能子类型感到困惑

我正在学习编程语言的课程,"什么时候是一个函数是另一个函数的子类型"的答案对我来说非常反直觉.

澄清一下:假设我们有以下类型关系:

bool<int<real
Run Code Online (Sandbox Code Playgroud)

为什么函数(real->bool)是子类型(int->bool?不应该是相反的方式吗?

我希望子类型函数的标准是:如果f2可以采用f1可以采用的任何参数,则f1是f2的子类型,并且f1仅返回f2返回的值.显然有f1可以采用的值,但f2不能.

types type-theory programming-languages

9
推荐指数
2
解决办法
2067
查看次数

参数多态性与亚型多态性之间的概念差异?

我试图通过维基百科阅读,但它在多态性(特别是与Java相关)的主题上是如此密集.我的理解是亚型多态与子类型有关,参数多态与在不同对象/类之间推广的方法有关吗?我错过了什么?

java polymorphism

7
推荐指数
1
解决办法
4147
查看次数