封装、继承、多态是面向对象的三大特征,在Java中什么是多态?
Java引用变量有两种类型,分别是编译时类型和运行时类型。何为编译时类型,编译时类型就是由声明该变量时使用的类型决定,而运行时类型是由实际赋给该变量的对象决定
的,也就是说如果编译时类型和运行时类型不一致时,就可能出现上面提到的多态。
我们看下下面的程序:
class BaseClass {
publ...
分类:
编程语言 时间:
2015-02-17 23:35:39
阅读次数:
277
1. java中的多重继承
在c++中,组合多个类的接口的行为被称为多重继承。
在java中一个类只能继承一次,但可以实现多个接口,注意,继承必须写在实现前面
2. 使用接口的核心原因:
1) 为了能够向上转型为多个父类型(以及由此而带来的灵活性)
2) 防止程序员创建该类的对象
3. 策略设计模式:
传递不同的StringProcessor实现类,将会分别做不同的事情
...
分类:
编程语言 时间:
2015-01-24 20:07:24
阅读次数:
176
我们都知道,狗是动物中的一种,那么如果现在有一个Dog类和Animal类,那么他们的关系就是Dog类继承Animal类。
我们经常说,狗是动物,实际上“狗是动物”这句话就是向上转型的一个例子,即把狗(子类)当做动物(父类)来看待。用一句话来总结,向上转型就是父类的引用指向子类的实例。
当父类的引用指向子类对象的时候,父类的引用只可以访问子类继承于父类的那一部分属性和方法以及子类重写的父类的方法。...
分类:
其他好文 时间:
2015-01-18 00:56:07
阅读次数:
209
一个子类的对象向上转型给了一个父类的对象,父类中调用的属性和方法都是指向的子类对象的。也就是说指向的是子类中的复写override的方法。向上转型是不可能会失败的。//一个引用能够调用哪些成员(变量和函数),取决于这个引用的类型//一个引用调用的是哪一个方法,取决于这个引用所指向的对象class T...
分类:
其他好文 时间:
2015-01-12 23:48:39
阅读次数:
188
最近复习中比较绕的一个地方 通过试验总结一下若A为父类 B为子类 声明方式为: A t= new B();将子类对象赋值给父类对象,它编译时为父类对象,但运行时却是子类对象:1)被声明为父类对象;2)拥有父类属性,调用父类中非子类覆盖的方法;3)占用子类的内存空间;4)无法访问子类中特有的变量和方....
分类:
编程语言 时间:
2015-01-10 23:35:17
阅读次数:
234
学习视频内容:马士兵尚学堂马士兵_Spring_01_模拟Spring_01-10 ,设计模式准备只是1-4. 学习的内容:理解了spring的依赖注入和IOC的概念,以及springxml的配置方式,解耦合,灵活性。疑问点:向上转型的类声明的使用,反射的使用。 下一步的学习:java构架,spri...
分类:
其他好文 时间:
2015-01-07 10:47:03
阅读次数:
252
封装通过合并特征和行为来创建新的数据类型,“实现隐藏”则通过细节“私有化”把接口和实现分离。
继承可以允许向上转型,将对象视为它自己本身的类型或其基类来加以处理,但是这必须满足“is a”关系,而多态则消除类型之间的耦合关系,允许一种类型表现出与其他相似类型之间的区别,只要他们都是从同一个基类导出而来。多态通过分离做什么和怎么做,从另一个角度讲接口和实现分离开。
但是继承的向上转型会缩小接口,...
分类:
编程语言 时间:
2014-12-31 18:26:12
阅读次数:
175
第八章 多态多态是继数据抽象和继承之后的第三种基本特征8.1 再论向上转型8.2 转机 方法调用绑定,java除了static和final(private方法属于final方法)外其他所有方法都是后期绑定 多态是一项将改变的事物与未变的事物分离开来的重要技术 不要试图覆盖基类private方法...
分类:
编程语言 时间:
2014-12-30 23:32:21
阅读次数:
274
package com.lei.duixiang;/** * 內部类向上转型为接口 * 1、非内部类不能被声明为 private 或 protected 访问类型 * 2、从执行结果可以看出,这条语句执行的是内部类中的f() 方法 * 很好地对继承该类的子类隐藏了实现细节,仅为编写子类...
分类:
其他好文 时间:
2014-12-18 22:04:38
阅读次数:
195
1.抽象类和接口实例化
在java中可以通过对象的多态性,为抽象类和接口进行实例化操作,这样再使用抽象类和接口的时候,就可以使用子类的中覆写的方法来实现。
之所以抽象类和接口类不能直接实例化,是因为内部包含了各个抽象方法,抽象方法但都是未实现的方法,无法调用。通过多态性,子类发生向上转型,所调用的全部方法,都是被覆写过的方法。
//本程序是对抽象类和接口继续实例化的操作
abstract c...
分类:
其他好文 时间:
2014-12-16 22:46:39
阅读次数:
291