//抽象:概念中的人 class Person { private String name; public void setName(String name) { this.name = name; } public String getName() { return this.name; } //人都要吃饭地 public void dining() { } }//继承:父亲是人 class Father extends Person { final String FAMIlYNAME = "X"; //父亲习惯用左手吃饭 public void dining() { System.out.println("use lefe hand"); } }//继承:儿子当然也是人,更是父亲的儿子(全是废话,呵呵) class Son extends Father { //儿子习惯用右手吃饭 public void dining() { System.out.println("use right hand"); } }public class Test {
//再次重申人都要吃饭地 public static void dining(Person p) { p.dining(); } public static void main(String args[]) { Father f = new Father(); Son s = new Son(); System.out.println(s.FAMIlYNAME);//继承:儿子继承了父亲的姓氏 //多态:Test.dining参数为Person,f、s为具体某个Person,f、s吃饭习惯用手不一样 dining(f); dining(s); } }结果: X use lefe hand use right hand
//抽象:概念中的人
class Person {
private String name; public void setName(String name) {
this.name = name;
} public String getName() {
return this.name;
} //人都要吃饭地
public void dining() {
}
}//继承:父亲是人
class Father extends Person {
final String FAMIlYNAME = "X"; //父亲习惯用左手吃饭
public void dining() {
System.out.println("use lefe hand");
}
}//继承:儿子当然也是人,更是父亲的儿子(全是废话,呵呵)
class Son extends Father { //儿子习惯用右手吃饭
public void dining() {
System.out.println("use right hand");
}
}public class Test {
//再次重申人都要吃饭地
public static void dining(Person p) {
p.dining();
} public static void main(String args[]) {
Father f = new Father();
Son s = new Son();
System.out.println(s.FAMIlYNAME);//继承:儿子继承了父亲的姓氏
//多态:Test.dining参数为Person,f、s为具体某个Person,f、s吃饭习惯用手不一样
dining(f);
dining(s);
}
}结果:
X
use lefe hand
use right hand
Day day up!
要是有个mother就更逗了
顺便说一句,JAVA不支持多继承,是这样吧?
那son应该从father继承,实在不行,就给mother来个接口吧~
就在讲这个
http://blog.csdn.net/terryzero/archive/2008/12/24/3595601.aspx
希望能对你有所帮助
Father继承Person是对的,但Son继承Father是错的,说明你对抽象和继承机制理解还不透彻。
在OO理论中,基类要么比派生类更抽象,要么比派生类具有更少的功能,所以才需要派生类去扩展(extends)它。父亲和儿子显然不符合这种关系(父亲不比儿子更抽象,也不比儿子的功能更少,他们在抽象级别上一致的)。9楼:
要是有个mother就更逗了
顺便说一句,JAVA不支持多继承,是这样吧?
那son应该从father继承,实在不行,就给mother来个接口吧~说话很风趣,但是完全错了~~~
JAVA不支持多继承就“来个接口”,殊不知,接口并不是为了解决“多继承”问题而存在的,而且凭什么父亲是类,母亲是接口?很荒诞的设计。或许有人说,初学不需要考虑那么深奥,但是,这些不正确的思想会给接下去的学习和应用带来很大麻烦。顺便说一下,如果有人看到有的教材中使用“父类”,“子类”这种称呼的,请把它扔了,正确的叫法是“基类(或超类)”和“派生类”。不是抠字眼,而因为是“父”、“子”这种叫法具有很强的误导性。