抽象的问题怎么理解? 本人初学Java,现在对于多态和接口还很模糊,感觉很抽象,不好理解。 牛人们当时是怎么理解的啊? 请教一下,有没有什么好的方法来理解啊 ? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 多 态 机 制 ┌─-────-─┐ │ Feed │ ├───────┤ │ feed()│ └───┬───┘ │ ┌─────——─————————──┴——————————────────┐ │ │ │ │ ┌───┴───┐ ┌───┴───┐ │ Food │ │Animal │ ├───────┤ ├───────┤ │ │ │ eat() │ └───┬───┘ └───┬───┘ ┌────┴────┐ ┌────┴────┐ │ │ │ │ ┌──┴──┐ ┌──┴──┐ ┌──┴──┐ ┌──┴──┐ │Bone │ │Fish │ │ Dog │ │Cat │ ├─────┤ ├─────┤ ├─────┤ ├─────┤ │ │ │ │ │eat()│ │eat()│ └─────┘ └─────┘ └─────┘ └─────┘ 图1-1 饲养员Feeder、食物Food 和 动物Animal 及它的子类的类框图 public class Feeder{ public void feed(Animal animal, Food food){ animal.eat(food); }}Feeder feeder = new Feeder();Animal animal = new Dog();Food food = new Bone();feeder.feed(animal, food); //给狗喂肉骨头animal = new Cat();food = new Fish();feeder.feed(animal, food); //给猫喂鱼Animal animal = new Dog();Dog dog = (Dog)animal; //向下转型,把Animal类型转换为Dog类型 Creature creature = animal; //向上转型,把Animal类型转换为Creature类型──────────────────────────────────────────────────例:父类Base和子类Sub中都定义了 实例变量var、实例方法method()、静态变量staticVar和静态 方法staticMethod(),此外,在Sub类中还定义了 实例变量subVar 和 subMethod()。package com.kejiangwei.test;class Base{ String var = "BaseVar"; //实例变量 static String staticVar = "StaticBaseVar"; //静态变量 void method(){ //实例方法 System.out.println("Base method"); } static void staticMethod(){ //静态方法 System.out.println("Static Base method"); }}public class Sub extends Base{ String var = "SubVar"; //实例变量 static String staticVar = "StaticSubVar"; //静态变量 void method(){ //覆盖父类的method()方法 System.out.println("Sub method"); } static void staticMethod(){ //隐藏父类staticMethod()方法 System.out.println("Static Sub method"); } String subVar = "Var only belonging to Sub"; void subMethod(){ System.out.println("Method only belonging to Sub"); } public static void main(String[] args){ Base who = new Sub(); //who被声明为Base类型,引用Sub实例 System.out.println("who.var = " + who.var); //打印Base类的var变量 System.out.println("who.staticVar = " + who.staticVar); //打印Base类的staticVar变量 who.method(); //打印Sub实例的method()方法 who.staticMethod(); //打印Base类的staticMethod()方法 }} 刚学java这些东西没必要死扣. Socket服务端接收一个用户,就开一个线程,求代码。。。 菜鸟匿名内部类的问题 一个网络编程的问题 請問以下各項的知識入門大家有沒有好的推荐材料 Java DWG PDF 疑难问题,有人遇见过吗 我在深圳见到的题 请教关于java.swing.*中的一个类的问题,让我很是不明白 准备学Java,不知各位兄台有什么好的建议? IE显示乱码问题,急? 请问jbuilder有没有GridControl组件? 帮来解决一下几个问题!谢谢了.! JComboBox的addItem()中的参数问题
│ Feed │
├───────┤
│ feed()│
└───┬───┘
│
┌─────——─————————──┴——————————────────┐
│ │
│ │
┌───┴───┐ ┌───┴───┐
│ Food │ │Animal │
├───────┤ ├───────┤
│ │ │ eat() │
└───┬───┘ └───┬───┘
┌────┴────┐ ┌────┴────┐
│ │ │ │
┌──┴──┐ ┌──┴──┐ ┌──┴──┐ ┌──┴──┐
│Bone │ │Fish │ │ Dog │ │Cat │
├─────┤ ├─────┤ ├─────┤ ├─────┤
│ │ │ │ │eat()│ │eat()│
└─────┘ └─────┘ └─────┘ └─────┘ 图1-1 饲养员Feeder、食物Food 和 动物Animal 及它的子类的类框图
public class Feeder{
public void feed(Animal animal, Food food){
animal.eat(food);
}
}
Feeder feeder = new Feeder();
Animal animal = new Dog();
Food food = new Bone();
feeder.feed(animal, food); //给狗喂肉骨头animal = new Cat();
food = new Fish();
feeder.feed(animal, food); //给猫喂鱼
Animal animal = new Dog();
Dog dog = (Dog)animal; //向下转型,把Animal类型转换为Dog类型
Creature creature = animal; //向上转型,把Animal类型转换为Creature类型
──────────────────────────────────────────────────例:父类Base和子类Sub中都定义了 实例变量var、实例方法method()、静态变量staticVar和静态
方法staticMethod(),此外,在Sub类中还定义了 实例变量subVar 和 subMethod()。package com.kejiangwei.test;class Base{
String var = "BaseVar"; //实例变量
static String staticVar = "StaticBaseVar"; //静态变量
void method(){ //实例方法
System.out.println("Base method");
} static void staticMethod(){ //静态方法
System.out.println("Static Base method");
}
}public class Sub extends Base{
String var = "SubVar"; //实例变量
static String staticVar = "StaticSubVar"; //静态变量
void method(){ //覆盖父类的method()方法
System.out.println("Sub method");
} static void staticMethod(){ //隐藏父类staticMethod()方法
System.out.println("Static Sub method");
} String subVar = "Var only belonging to Sub";
void subMethod(){
System.out.println("Method only belonging to Sub");
} public static void main(String[] args){
Base who = new Sub(); //who被声明为Base类型,引用Sub实例
System.out.println("who.var = " + who.var); //打印Base类的var变量
System.out.println("who.staticVar = " + who.staticVar); //打印Base类的staticVar变量
who.method(); //打印Sub实例的method()方法
who.staticMethod(); //打印Base类的staticMethod()方法
}
}