dreamstone 发表于 2013-1-27 06:10:46

静态分派,动态分派,多分派,单分派 -------------

一,静态分派:
1,定义:发生在编译时期,分派根据静态类型信息发生,重载就是静态分派
2,什么是静态类型:变量被声明时的类型是静态类型
      什么是动态类型:变量所引用的对象的真实类型
3,有两个类,BlackCat ,WhiteCat都继承自Cat
如下调用
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;">http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedBlock.gifclass Cathttp://www.agoit.com/Images/dot.gif{}
http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedBlock.gifclass WhiteCat extends Cathttp://www.agoit.com/Images/dot.gif{}
http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedBlock.gifclass BlackCat extends Cathttp://www.agoit.com/Images/dot.gif{}
http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedBlock.gifpublic class Person http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif    public void feed(Cat cat)http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        System.out.println("feed cat");
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif    }
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif    public void feed(WhiteCat cat)http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        System.out.println("feed WhiteCat");
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif    }
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif    public void feed(BlackCat cat)http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        System.out.println("feed BlackCat");
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif    }
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://www.agoit.com/Images/OutliningIndicators/ContractedSubBlock.gif    public static void main(String[] args) http://www.agoit.com/Images/dot.gif{
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        Cat wc = new WhiteCat();
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        Cat bc = new BlackCat();
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        Person p = new Person();
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        p.feed(wc);
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif        p.feed(bc);
http://www.agoit.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif    }
http://www.agoit.com/Images/OutliningIndicators/InBlock.gif
http://www.agoit.com/Images/OutliningIndicators/ExpandedBlockEnd.gif}
http://www.agoit.com/Images/OutliningIndicators/None.gif
页: [1]
查看完整版本: 静态分派,动态分派,多分派,单分派 -------------