我的老师让我在课堂上举例说明polymorphism
。
我告诉他你是多态性的最佳例子。在大学里你是老师,在家里你是丈夫或父亲。所以你是一种方法,但在不同的状态下,你的行为也是如此。而且你也在扩展人类,所以你可以像人一样被多态化。
(考虑到多态性的定义:Acquiring more than one form
)
它可以被视为polymorphism
的好例子吗?
感谢。
答案 0 :(得分:1)
在您的示例中,您为不同的状态提供不同的行为。
在OOP中,这是通过接口表达的。
所以,它的建模方式如下:
class Human
{
Date Birthdate;
}
interface ITeacher
{
void Teach();
}
interface IHusband
{
void Pray();
}
interface IFather
{
void Love(); // methods in IFather and IHusband can be interchanged
}
class Person extends Human implements ITeacher, IHusband, IFather
{
// implementations inserted here
}
现在你可以使用这些行为以及他在不同情况下是人的事实。
像:
Human yourTeacher = new Human("1970/05/01");
Class class = new Class();
class.Teachers.Add(yourTeacher); // expecting that it is a collection of ITeachers.
Pub pub = new Pub();
pub.DrunkPeople.Add(yourTeacher); // accepting only humans older than 21 here
因此,多态性是关于 ONE 对象,在不同的情况下表现不同......和继承。