社区
Java SE
帖子详情
抽象的问题怎么理解?
baijinjin
2008-09-24 06:56:58
本人初学Java,现在对于多态和接口还很模糊,感觉很抽象,不好理解。 牛人们当时是怎么理解的啊? 请教一下,有没有什么好的方法来理解啊 ?
...全文
220
13
打赏
收藏
抽象的问题怎么理解?
本人初学Java,现在对于多态和接口还很模糊,感觉很抽象,不好理解。 牛人们当时是怎么理解的啊? 请教一下,有没有什么好的方法来理解啊 ?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lhf0000
2008-09-29
打赏
举报
回复
做多了,也就理解了~
baijinjin
2008-09-29
打赏
举报
回复
:-),知道了 ,感谢解答………… 以后就不细扣 了
bobor_2008
2008-09-25
打赏
举报
回复
多看书,多练习,多思考.
你就知道了.
哈库纳玛塔塔
2008-09-25
打赏
举报
回复
接口是好东西, 抽象类也是好东西, 在设计程序的抽象层时候使用这2个东西, 要尽量使用接口少用抽象类。
朋友设计的项目多了自然就理解了,初学 抽象类和接口什么时候使用确实是一个头疼的问题。因为抽象类貌似可以代替接口。 其不然。 随着设计的经验增加这2东西你会灵活运用的。
ouyangxiaokang6
2008-09-25
打赏
举报
回复
了解他的概念,然后多些程序就ok了。光看书没有。
jsjlw
2008-09-25
打赏
举报
回复
刚学java这些东西没必要死扣.
wufongming
2008-09-25
打赏
举报
回复
多看书,多练习,多思考
hero_winner
2008-09-24
打赏
举报
回复
貌似多态是相同的动作产生不同的行为,多态实现的是一对多,接口就是为了实现多对多
Xiaoyang
2008-09-24
打赏
举报
回复
先把概念的东西看下,然后自己多动手去做。慢慢的自然就理解了!
ke788
2008-09-24
打赏
举报
回复
奇怪,做好的图都歪了
ke788
2008-09-24
打赏
举报
回复
多 态 机 制
┌─-────-─┐
│ 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()方法
}
}
jowzey_liu
2008-09-24
打赏
举报
回复
多看几遍书,要讲起来 不怎么好讲呢···
自己 理解 最重要了·
ZangXT
2008-09-24
打赏
举报
回复
先知道这个东西,不必细抠.写点程序,慢慢有经验了想不明白都难.
汉诺塔
问题
的
抽象
理解
本文通过Python代码解析汉诺塔
问题
的递归解决方案,介绍了如何利用
抽象
思维和递归工具将复杂
问题
分解为更小的子
问题
,展示了Python语言在处理此类
问题
上的优势。
PHP中
抽象
类、
抽象
方法及接口相关
问题
的
理解
本文深入探讨了
抽象
类和接口的概念,分析了它们在系统开发中的应用价值,包括提高代码复用性、提供统一规范、增强代码控制性等。同时,详细解释了
抽象
方法与
抽象
类的关系,以及接口与
抽象
类之间的区别。
汉诺塔
问题
抽象
化
理解
递归
本文通过
抽象
化方法深入解析汉诺塔
问题
的递归本质,阐述如何将n个圆盘从起始柱经辅助柱移至目标柱的过程,并给出Java实现思路及时间复杂度分析,揭示递归算法的执行规律。
从彩虹瓶
问题
深入
理解
堆栈:LIFO原理、
抽象
建模与算法实战
本文以团体程序设计天梯赛L2-032‘彩虹瓶’题为案例,深入剖析堆栈(Stack)的LIFO原理及其在实际
问题
中的
抽象
建模方法。重点讲解如何将流水线调度转化为栈操作(push/pop/peek),涵盖数学模型构建、状态机驱动算法流程、容量约束处理、栈清空逻辑及常见实现陷阱。内容紧扣数据结构核心,适用于算法学习、竞赛训练与栈原理深化
理解
。
关于现实
问题
与数学模型在算法中
抽象
应用的
理解
与感想
本文强调了解决
问题
的关键在于将现实
问题
转化为数学模型,并通过编程实现。编程语言只是工具,核心是数学建模和算法设计能力。同时指出,数学思维对于计算机从业者至关重要,目前仍需要人为将自然语言
问题
转换为计算机语言。这激发了作者对计算机领域的热情,并鼓励初学者深入学习。
Java SE
62,621
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章