定义抽象类和接口具体有什么用?

来源:百度知道 编辑:UC知道 时间:2024/06/14 06:59:40
比如说:男人和女人。都是人,我可以定义一个Person类,里面写些抽象方法或属性。然后可以写男人和女人的类继承Person类,实现里面的抽象方法。
但是我直接定义男人类和女人类,然后里面写相同的方法不也一样吗? 反正不管是继承还是在自己的类里面写都是写,何必还弄个Person类呢?
我是个初学者,希望大虾们指点下。万分感谢。

人都会吃饭,而且男人吃饭和女人吃饭是一样的,所以抽象出来后就可以写到父类中。如果哪一天人类的饮食习惯突然发生了改变,那么单单改一个父类就行了,不用挨个改那么多的类,因为继承机制中,子类可以继承父类的方法,这样便增强了程序的可维护性。
补:
这个吃饭方法在抽象类中不是抽象方法。但是男人和女人都有繁殖行为,但是二者的行为是不一样的,所以在父类中如果定义了繁殖这样一个抽象方法而在子类中重写,那么当某一天地球上出现了一种全新的繁殖方式的人种时,就可以直接继承person类,然后重写繁殖方法,同样增强了程序的可维护性……由于举的是人的例子,实在想不出来男人与女人之间还有其它什么区别了……

我.雇工(Java程序员 人);
interface Java程序员{
Java程序[] 编程序(项目类型 项目);
}
class 男人{
void 抽烟(){
}
void 喝酒(){
}
void 扛煤气罐(){
}
}
class 女人{
void 化妆(){
}
商品[] 逛商场(){
}
}
class 男Java程序员 extends 男人 implements Java程序员{
Java程序[] 编程序(项目类型 项目){
//......
}
}
class 女Java程序员 extends 女人 implements Java程序员{
Java程序[] 编程序(项目类型 项目){
//......
}
}
你地明白?