软考视频 java初始总结

        

        最近一直看java视频,疑惑挺多的,但收获也不小,以前似懂

非懂的东西,通过内存分析,明白多了。其实任何高深的技术最

后都能 转化成“普通话”这就是科学的魅力!

        有些东西感觉挺重要,不过自己理解的还不到位!写写肤

浅的总结,留给自己!如果不妥之处,望大家批评指出,必定斧

正!

一、回调函数:

定义在百度上有。http://zh.wikipedia.org/zh/回调函数
看看人们大家之谈,各抒己见!内容丰富,对于我这个菜鸟来说,有点难度,也有收获。
从菜鸟的角度谈谈此问题。
回调:callback
函数就是方法。
从字面上理解,也就是米老师给我们说过的,其本质就是延迟实现。
看看软考视频,回调函数的例子是这样的,方法本身在实现过程中,使用自己!这种在使用过程中,回调自己的函数就是回调函数。
这样的理解很感性,不过能体现回调函数的本质。回调函数的应用很多。类型也不少,有人说有内部回调和外部回调,其划分角度不同而已。
我们平时也在用回调函数,比如我们在分层的时候,总是跨层调用。这就体现了回调函数。
本人对回调函数的理解比较浅,也在总结中!这样的谈了不足以发表博客,暂且搁在这里吧。

二、动态绑定

菜鸟理解的动态绑定比较肤浅,不过也是通过自己思考的结果。
看视频时,有这样一句话,动态绑定是多态的核心。多态是面向对象的核心。动态绑定是核心的核心。听起来挺重要的。
简单说,就是在运行时,根据对象的类型调用相应的方法。对象的类型不同,调用的方法也就不同。
如果子类重写父类的方法,则调用的是子类的方法,如果子类没有重写父类的方法,则调用父类的方法。
动态绑定是针对方法而言,属性没有。属性没有重写的过程,也就谈不上了。
理解的不是很全面,代码先不放上了。

三、对象转型。
class Animal {
 
public String name;
 Animal (String name) {
    this.name=name;
}
}

class Cat extends Animal {
 
public String eyesColor;

 Cat(String n,String c) {
   super(n);
eyesColor=c;
}
}

public class Test {
 public static void main(String[] args) {
    Test test = new Test();
    Animal a = new Animal("name");
    Cat c = new Cat("Catname","blue");
    test.f(a);
    test.f(c);   
}

public void f(Animal a) {
   System.out.println("name: "+a.name);
   if(a instanceof Cat) {
      Cat cat = (Cat) a;
        System.out.println(" "+cat.eyesColor+" eyes");
  }
 }
}
Animal   某公司总部
Cat  公司地区子公司

假如公司总部只负责财务结算,子公司负责货物运输
突然有一个客户(调用f方法的地方)打电话给总公司(相当于打电话给Animal  ),说

需要运输一批货物,总公司需要怎么办,肯定是吧这个业务接下来,然后下放到子公司

Cat
需要对象转换,就是要确认那个子公司有资格去做货物运输业务

不需要强转,要么总公司能自己执行货物运输业务

要么,客户知道子公司名称,直接打电话给子公司

第一种方法就是吧eyesColor 这个属性设置为Animal的属性

class Animal {
 public String name;
public String eyesColor;
......
}
然后去掉Cat的eyesColor 属性

这样的缺陷很明显,意思是所有子类都有eyesColor属性,就好象,说有子公司都能负责

货物运输,实际情况不可能如此

第二种:修改f方法的参数类型
public void f(Cat a) {
 
System.out.println("name: "+a.name);
 
     System.out.println(" "+a.eyesColor+" eyes");
 }
就像上面这样,缺陷:该方法只针对Cat类型适用了。这是多态的体现,f(Animal,a),

a 是cat的父类。父类对象强转成子类对象后,调用子类的方法。

上面的总结平时做的总结,简短且直白!不足之处望大家积极之处,必定斧正!
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值