Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 教室中多态性的真实示例_Oop_Polymorphism - Fatal编程技术网

Oop 教室中多态性的真实示例

Oop 教室中多态性的真实示例,oop,polymorphism,Oop,Polymorphism,有一次,我的老师让我在教室里举一个多态性的例子。 我告诉他你是多态性最好的例子。在大学里,你是一名教师,在家里,你是丈夫或父亲。因此,您的方法是一种,但在不同的状态下,您的行为是相应的。同时,你也在扩展人类,这样你就可以被当作人类进行多态性处理 (考虑多态性的定义:获取多个表单) 可以作为多态性?的好例子吗? 谢谢。在您的示例中,您针对不同的状态给出了不同的行为 在OOP中,这是通过接口表示的 因此,它将被建模如下: class Human { Date Birthdate; } i

有一次,我的老师让我在教室里举一个多态性的例子。 我告诉他你是多态性最好的例子。在大学里,你是一名教师,在家里,你是丈夫或父亲。因此,您的方法是一种,但在不同的状态下,您的行为是相应的。同时,你也在扩展人类,这样你就可以被当作人类进行多态性处理

(考虑多态性的定义:
获取多个表单

可以作为多态性

的好例子吗?
谢谢。

在您的示例中,您针对不同的状态给出了不同的行为

在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
}
现在你可以利用这些行为和事实,他是一个人在不同的情况下

比如:


所以,多态性是关于一个在不同情况下表现不同的对象。。。继承权。

取决于你老师的脸孔:p这就是一个例子。好或坏是不确定的值:PIt可能是;-)。如果您想对您的答案感到满意,请阅读中的实时示例。他们给出了使用绘图应用程序的实时示例
 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