1:Animal a = new Cat();
1.1:在栈中创建区域,类型为Animal,变量名:a;
1.2:在堆中new Cat();占用一块区域。地址值:[0x3a4]
1.3:spuer()实例化父类Animal。
1.3.1:new Animal();占用一块区域,地址值:0x3ab;
1.3.2:引用着在方法区中初始化[Animal中的所有方法,该引用为:[0x754]]。
1.3.3:将Animal()引用赋给spuer();spuer引用着Animal();
1.4:在...
分类:
编程语言 时间:
2014-08-13 01:19:24
阅读次数:
284
所谓的设计原则也好,设计模式也罢,无非是在面向对象的前提下产生的。而面向对象的前提是抽象,面向对象的三大特征是封装、继承、多态。为了从本质上理解设计模式,下面我们分析一下这些概念之间的关系。请看下图:
面向对象思想的前提是抽象,从现实世界中抽象出一些对象或者类的共性之后封装成类或者抽象类或者接口。这些类也罢接口也好是为了增加代码的复用性,既然是为了复用,当然需要子类来继承。在继承...
分类:
其他好文 时间:
2014-08-12 22:08:54
阅读次数:
205
1.是不是一个父类写了一个virtual函数,如果子类覆盖它的函数不加virtual,也能实现多态?virtual修饰符会被隐形继承的。private也被集成,只事派生类没有访问权限而已。virtual可加可不加。子类的空间里有父类的所有变量(static除外)。同一个函数只存在一个实体(inlin...
分类:
编程语言 时间:
2014-08-12 18:27:24
阅读次数:
319
策略设计模式:定义一组算法,将每个算法都分装起来,并使他们之间可以互换。 策略模式就是使用的面向对象思想中的继承和多态的机制策略模式的通用类图:Context类:Strategy类,并且和Strategy类是整体和个体的关系,即聚合关系。对策略角色个体进行封装。Strategy接口:定义这个策略或算...
分类:
其他好文 时间:
2014-08-12 16:10:34
阅读次数:
247
面向对象这个东西,其实我们一直是不是都没有感觉到自己在用,以后我一定要用用。以前学c#时候认真的看过一次,最近一直研究java。随便再看看。多态问题: 在java中多态分为(1)编译时多态和(2)运行时多态(1)编译时多态比较容易理解:其实就是通过方法重载,就是方法的重载,同一个函数名但是可以参.....
分类:
编程语言 时间:
2014-08-12 16:09:34
阅读次数:
195
寻踪浅析 封装、继承、多态是面向对象语言的三大特性,熟悉C++的人对此应该不会有太多异议。C语言提供的struct,顶多算得上对数据的简单封装,而C++的引入把struct“升级”为class,使得面向对象的概念更加强大。继承机制解决了对象复用的问题,然而多重继承又会产生成员冲突的问题,虚继承在我....
分类:
其他好文 时间:
2014-08-12 13:25:04
阅读次数:
250
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------多 态(面向对象特征之一):函数本身就具备多态性,某一种事物有不同的具体的体现。体现:父类引用或者接口的引用指向了自己的子类对象。//Animal ...
分类:
其他好文 时间:
2014-08-12 09:01:03
阅读次数:
200
面向对象这个东西,其实我们一直是不是都没有感觉到自己在用,以后我一定要用用。以前学c#时候认真的看过一次,最近一直研究java。随便再看看。多态问题: 在java中多态分为(1)编译时多态和(2)运行时多态(1)编译时多态比较容易理解:其实就是通过方法重载,就是方法的重载,同一个函数名但是可以参.....
分类:
编程语言 时间:
2014-08-11 23:58:03
阅读次数:
494
声明:代码和图片是本人在学习期间复制尚学堂课件中的资料,对其做一下总结。abstractclassAnimal{privateStringname;Animal(Stringname){this.name=name;}/*publicvoidenjoy(){System.out.println("叫声......");}*/publicabstractvoidenjoy();}abstractclassCatextendsAnimal..
分类:
其他好文 时间:
2014-08-11 18:12:22
阅读次数:
232
和含有JAVA5.0的新的概念。由于它们的外表导致了很多人误解了它们的用途:
1.首先你很容易误解它为继承于T的所有类的集合,这是大错特错的,相信能看下去你一定见过或用过List吧?为什么我说理解成一个集合是错呢?如果理解成一个集合那为什么不用List来表示?所以不是一个集合,而是T的某一种子类的意思,记住是一种,单一的一种,问题来了,由于连哪一种都不确定,带来...
分类:
编程语言 时间:
2014-08-11 12:05:52
阅读次数:
192