黑马程序员技术交流社区

标题: Calendar的getinstance方法到底什么意思? [打印本页]

作者: 雪中鱼01    时间: 2016-10-31 23:36
标题: Calendar的getinstance方法到底什么意思?
calendar是个抽象类 按说应该创建一个子类对象来调用父类方法,但是这个getinstance方法返回的是一个calendar 类型的对象,到底是什么意思?抽象类如果都这样岂不都可以创建对象了?

作者: zhy20160915    时间: 2016-11-1 00:31
抽象类和接口本来就是子类对象的引用啊,这就是多态啊,抽象类自己又不可以创建对象
O(∩_∩)O嗯!    getInstance()是静态的,类名直接调用啊,然后这个方法返回一个子类引用,就是向上转型C:\tools\2.png.C:\tools\1.png
作者: duanqichao    时间: 2016-11-1 00:56
楼上正解

作者: 若白衣卿相    时间: 2016-11-1 01:01
2楼说的很详细了

作者: 雪中鱼01    时间: 2016-11-1 11:01
zhy20160915 发表于 2016-11-1 00:31
抽象类和接口本来就是子类对象的引用啊,这就是多态啊,抽象类自己又不可以创建对象
O(∩_∩)O嗯!    getInst ...

所以这个方法相当于创建一个子类对象,但是返回的是个父类对象?

作者: IceLoveInFire丶    时间: 2016-11-1 11:23
你只不过是用父类变量接收,其实它是一个calendar的子类对象。再好好屡屡吧

作者: w梧桐叶    时间: 2016-11-1 13:47
你创建的是子类对象,但是让他化妆成了父类,这样说不知道你能不能理解。

作者: 雪中鱼01    时间: 2016-11-2 22:24
w梧桐叶 发表于 2016-11-1 13:47
你创建的是子类对象,但是让他化妆成了父类,这样说不知道你能不能理解。
...

今天看了源码,懂了,底层返回了个格里高利日历类

作者: 袁志娜    时间: 2016-11-2 22:37
2楼说的很妙




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2