Java之------【抽象与继承】

来源:互联网 发布:python 仪器控制 编辑:程序博客网 时间:2024/04/23 17:08

    忙碌的一天又结束了,大部分同事们都回家了,仅有的几个同事任然在奋战中!

以前有听说过下班了不愿意回家的这回事,我是死活不相信,但是我现在相信了,我也在做同样的事情。至于为什么,也许你有一天会明白,也许你不需要明白!

利用这点时间总结下今天下午学到的一点关于java的面向对象的一个特点的分享:

大家都对面向对象的三大特点倒背如流,但是你明白他们的具体的实现吗,反正我学了这么久,概念还是那么的模糊,下面我就把关于java中的一个抽象的概念跟大家共同学习下:

抽象:

抽象==》模糊(就是你搞不清楚他具体是什么,只知道一个宏观的概念)

例如:奥迪A8L与宝马X5都是汽车,但是他们的引擎不一样,但是作为一辆汽车,必须要有引擎,具体什么样的车型有什么样的引擎,我们不关心,那是他自己的事。所以我们可以把汽车的引擎抽象出来,具体的实现就需要他们自己去完成。下面我给大家一个关于抽象的例子:一个公司有两种类型恶职工,一个是程序员,一个是管理者。程序员的属性有:姓名,工号,薪酬,行为:写代码;管理者:姓名,工号,薪酬,奖金;行为:管理程序员。

实现:

package testPkg2;//抽象类定义public abstract class Man {String name;String number;int pay;Man(){}Man(String name,String number,int pay){this.name=name;this.number=number;this.pay=pay;}abstract void work();}package testPkg2;//实现抽象类public class programer extends Man{programer(String name,String number,int pay){super(name,number,pay);}void work(){System.out.println("my work is write code...");}}package testPkg2;实现抽象类public class Manager extends Man{int bound;Manager(){}Manager(String name,String number,int pay,int bound){super(name,number,pay);this.bound=bound;}void work(){System.out.println("My work is manage our employee");}}public class Main {public static void main(String[] args) {// TODO Auto-generated method stubprogramer p=new programer("s","s",100);p.work();Manager m=new Manager();m.work();}}
输出结果:my work is write code...My work is manage our employee

        从上面的例子我们可以看出,两中类型的职工,他们都有工作的行为,但是他们的具体内容不同。我们这里采用了抽象类去实现,是不是会觉得清晰一些,看上去不是那么的乱。这样也保证了程序的健壮性,这样以后公司突然多了一种类型的员工,我们就不需要单独为他写行为的方法,我们只需继承抽象类就可以了!以上就是小弟最近的一点学习心得。望各路神仙多多指教!


个人感悟:有时候你被生活狠狠的抽了一巴掌,但是你依然得微笑面对,因为你除了这样再找不到更好的办法来面对这一切!!、


0 0