首先简单解释下什么叫对象的上转型对象:
假设A类是B类的父类,当用子类(B类)创建一个对象b时,并把这个对象b的引用放到父类(A类)的对象a中时,这时就称对象a是对象b的上转型对象。
例如现有A类是B类的父类:
A a;
a=new B();
或
A a;
B b=new B();
a=b;
为什么要...
分类:
其他好文 时间:
2015-03-11 12:54:55
阅读次数:
109
在 Java 中,声明类、变量和方法时,可使用关键字 final 来修饰。final 所修饰的数据具有“终态”的特征,表示“最终的”意思。具体规定如下:final 修饰的类不能被继承。final 修饰的方法不能被子类重写。final 修饰的变量(成员变量或局部变量)即成为常量,只能赋值一次。fina...
分类:
编程语言 时间:
2015-03-11 12:41:38
阅读次数:
183
static方法或属性是可以被继承的,static方法可以被子类覆盖,但是static方法不能作为抽象方法被子类重写父类中的final方法可以被子类所继承,但是不能在子类中覆盖或重写。简而言之,就是一旦在父类中把方法声明为final,则子类根本不能动这个方法一个被定义为abstract的类不一定要有...
分类:
编程语言 时间:
2015-03-08 15:40:50
阅读次数:
116
Final:用于声明属性、方法和类。修饰的是基本类型,就表示这个变量被赋予的值是不可变的,即它是个常量;final修饰的方法不能被子类重写,但不影响子类的继承;final修饰的类不能被继承 。
Finally:只用在try-catch-finally语句中,不论有异常还是没有异常,这段语句最终总被执行。
Finalize:此方法是Object类中的一个方法(所有类都有这个方法),是GC...
分类:
移动开发 时间:
2015-03-05 14:46:59
阅读次数:
173
抽象类和接口有什么区别?有了抽象类为什么还要接口?接口和抽象类的相同点是都不能实例化,不同点是接口中的方法都没有方法体,而抽象类则不然,除了抽象方法没有方法体外,其他方法都有方法体。原因是:在C#中,类只能继承一个类,但可继承多个接口。抽象类:1、不能实例化2、抽象方法必须被子类重写3、如果类中包含...
今天把原来一份很老的PHP代码导入到了PaaS上,出现了许多Strict standards:Declaration of … should be compatible with that of…这样的错误,字面意思好像是说函数不匹配,看了下出错的函数,都是子类重写的基类函数。 上网搜索了一下,发现...
分类:
Web程序 时间:
2015-02-23 22:20:10
阅读次数:
158
* super:可以用来修饰属性、方法、构造器**1)当子类与父类中有同名的属性时,可以通过"super.此属性"显式的调用父类中声明的属性.* 若想调用子类的同名的属性“this.此属性”**2)当子类重写父类的方法以后,在子类中若想再显式的调用父类的被重写的方法,就需要使用“super.方法”*...
分类:
编程语言 时间:
2015-01-30 22:27:26
阅读次数:
284
动多态的设计思想:对于相关的对象类型,确定它们之间的一个共同功能集,然后在基类中,把这些共同的功能声明为多个公共的虚函数接口。各个子类重写这些虚函数,以完成具体的功能。客户端的代码(操作函数)通过指向基类的引用或指针来操作这些对象,对虚函数的调用会自动绑定到你实际提供的子类对象上去。静多态的设计思想...
分类:
编程语言 时间:
2015-01-30 19:09:26
阅读次数:
170
我们都知道,狗是动物中的一种,那么如果现在有一个Dog类和Animal类,那么他们的关系就是Dog类继承Animal类。
我们经常说,狗是动物,实际上“狗是动物”这句话就是向上转型的一个例子,即把狗(子类)当做动物(父类)来看待。用一句话来总结,向上转型就是父类的引用指向子类的实例。
当父类的引用指向子类对象的时候,父类的引用只可以访问子类继承于父类的那一部分属性和方法以及子类重写的父类的方法。...
分类:
其他好文 时间:
2015-01-18 00:56:07
阅读次数:
209
1. 相同他们有些相似。有些场景用哪个都行!1. 修饰父类、让子类重写virtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义。2. 都用必须public如果用来修饰方法,前面必须添加public,要不然就会出现编译错误:虚拟方法或抽象方法是不能私有的。毕竟加上virt...
分类:
Web程序 时间:
2015-01-07 18:29:22
阅读次数:
142