小编lom*_*do2的帖子

为何以及何时使用多态?

我是OOP的新手,多态性让我很难过:

class Animal
{
    public virtual void eat()
    {
        Console.Write("Animal eating");
    }
}
class Dog : Animal
{
    public override void eat()
    {
        Console.Write("Dog eating");
    }
}
class Program
{
    public void Main()
    {
        Animal dog = new Dog();
        Animal generic = new Animal();
        dog.eat();
        generic.eat();
    }
}
Run Code Online (Sandbox Code Playgroud)

这样打印

Dog eating
Animal eating
Run Code Online (Sandbox Code Playgroud)

但是为什么不使用Dog类型代替动物,比如Dog dog = new Dog()?当你知道这个物体是一种动物,但我不知道它是什么样的动物时,我认为这很方便.请向我解释一下.

谢谢

c# oop polymorphism

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

在Haskell中扩展一个函数

在我的作业中,我们得到了正则表达式.我必须退回e-NFA.我正在尝试构建该delta功能.到目前为止,我有:

module ConsENFA where

import Data.Set (Set, fromList, singleton, empty)
import RegEx
import ENFA

epsilon :: RegExp Char
epsilon = Symbol 'e'

deltaTest :: RegExp Char -> Int -> (Int -> Char -> Set Int)
deltaTest (Symbol sym) start = delta
    where
        delta :: Int -> Char -> Set Int
        delta start sym = singleton (start + 1)

deltaTest (Star re) start = delta
    where
        delta :: Int -> Char -> Set Int
        delta = deltaTest re (start …
Run Code Online (Sandbox Code Playgroud)

recursion haskell function

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

标签 统计

c# ×1

function ×1

haskell ×1

oop ×1

polymorphism ×1

recursion ×1