【发布时间】:2019-01-07 06:13:10
【问题描述】:
面向对象的编程范式使用继承来建模遵循泛化-专业化关系的实体之间的关系。在这里,基类用于封装一组实体的公共(通用)属性和行为,派生类通过添加附加属性和/或添加/修改现有行为来扩展基类。
作为函数式编程的新手,我需要有关在 F# 等函数式语言中建模此类关系的指导。
例如模拟如下简单情况的最佳方法是什么:
abstract class Tutorial {
private String topic;
abstract public void learn();
}
class VideoTutorial extends Tutorial {
private float duration;
public void learn () {
System.out.println ("Watch Video");
}
}
class PDFTutorial extends Tutorial {
private int pageCount;
public void learn () {
System.out.println ("Read PDF");
}
}
然后稍后使用 Tutorials 集合并调用 learn 来观察多态行为。
【问题讨论】:
标签: oop inheritance f# functional-programming