当前位置: 首页 > news >正文

济南品牌网站建设价格攻击asp网站

济南品牌网站建设价格,攻击asp网站,张家港市网站制作,用dw制作网站模板下载地址对象的起源 Object 文章来源:《Head First Java》修炼感悟。 上一篇文章中,老白学习了抽象类和抽象方法,不禁感慨,原来 Java 还可以这样玩。 同时又有了新的疑问,这些父类从何而来的? 本篇文章老白来聊一聊…

对象的起源 Object

码老白
文章来源:《Head First Java》修炼感悟。

上一篇文章中,老白学习了抽象类和抽象方法,不禁感慨,原来 Java 还可以这样玩。 同时又有了新的疑问,这些父类从何而来的? 本篇文章老白来聊一聊「对象的起源」(再次捂脸,好炫酷的用词)。

与生俱来的「超能力」

Java 中的所有类都是由 Object 继承而来,即便是你自己创建的类也是如此。 也就是说,Object 是所有类的父类。 比如我们设计 Dog 类时,看起来没有继承任何类,其实还是隐式地继承自 Object:

隐式继承
Object
Dog

虽然后来 Dog 继承了 Canine、Animal,但最终还是会继承自 Object:


隐式继承
Object
Animal
Canine
Dog

既然 Object 是所有类最原始的父类,那所有类肯定会继承到 Object 的某些行为,而且这些行为应该是最通用的、能适用于所有对象的。 很好奇 Object 到底都提供了哪些行为呢?

设想一下,假如自己设计 Object 类的话,会抽取哪些共性的元素呢?

  • 能与其它对象进行对比的方法;
  • 能生成自己唯一标识的方法;
  • 能描述自己的方法;
  • 等等…

好消息是,Object 真的实现了类似的方法,而且还远不止这些:

隐式继承
Object
Class getClass()
int hashCode()
String toString()
equals()
YourClass

以上仅是列出了 Object 的部分方法,并且这些方法都已经实现了,意味着你所创建的每一个类都可以直接使用它们,比如:
public class ObjectTest {public static void main(String[] args) {Dog dogA = new Dog();Dog dogB = new Dog();		// testSystem.out.println(dogA.equals(dogB));System.out.println(dogA.hashCode());System.out.println(dogA.getClass());System.out.println(dogA.toString());}
}
class Dog {}

编译执行结果:
Object测试简直不可思议,Dog 刚被创建出来就拥有了「超能力」,关键是它什么也没做。

Object 并不适合多态引用

Object 作为最顶端的父类,那是不是可以说允许用任何子类引用它? 试想一下,如果把 ArrayList 的元素类型声明为 Object,那岂不是可以保存任何类型了?想法一点也没错,请看:

ArrayList<Object> dogList = new ArrayList<Object>();
Dog dogA = new Dog();
dogList.add(dogA);

以上代码没有问题,确实可以将 Dog 对象保存到列表中。 但是,如果从列表中取出对象时会出现问题:

Dog dogB = dogList.get(0);

Object问题可以看到,无论你放入的是什么类型,取出时总是被当作 Object 类型。 编译器无法将取出的对象识别为 Object 以外的其它类型。

方法返回 Object 类型时也会出现同样问题:

Dog dogA = new Dog();
Dog dog = getObject(dogA);
public Object getObject(Object o) {return o;
}

Object返回虽然确实传入了 Dog 对象,但 getObject() 返回的只能是 Object 类型。 如果还是不死心,强制执行 Dog 应有的方法,比如:

getObject(dogA).bark();

编译器还是会拒绝,因为编译器不认为 Object 有 bark() 这个方法,它只认得 Object 应有的那些方法。


《 上一篇 抽象类和抽象方法下一篇 抽象的极致是「接口」》
http://www.yayakq.cn/news/684327/

相关文章:

  • 佛山新网站建设渠道清新网站设计
  • 郑州制作网站公司网站建设集团
  • 建设文明网 联盟网站的南宁网站建设官网
  • 蒲公英路由做网站深圳网站建设公司电话
  • 启业网查询官网网站优化建设南昌
  • 网站备案负责人一定要法人成都设计公司排名前十强
  • 制作类似网站软件怎么提高网站建设水平
  • 四会城乡建设局网站优化营商环境心得体会
  • ui设计模板网站oa系统怎么用
  • 中国十大旅游网站企业网站开发意义
  • 商务网站设计制作好的工具和方法遵义网约车资格证哪里申请
  • 山西响应式网站平台wordpress用户中心界面
  • 上海华谊集团建设有限公司网站口碑好的网页制作公司
  • 侨联 文化宣传 侨联网站建设小程序开发难吗
  • 莱芜0634技术支持 宿州网站建设邵阳建设局网站
  • 微餐饮网站建设平台制作网页类型一般分为什么
  • 做红包网站广州安全教育平台注册
  • 西宁建设厅培训中心网站泰安网站开发哪家便宜
  • 58同城做公司网站怎修改wordpress 图片特效
  • 扫码员在哪个网站可以做填写网站备案信息
  • 深圳公司网站设计成品网站seo
  • 上海php网站开发公司怎样做网络推广教学设计
  • 品牌vi设计是什么网站优化成都哪里好
  • 多个域名指向同一个网站百度如何推广网站
  • 网页设计与网站建设考试名词解释2019昆明微网站制作
  • 网站建设域名费wordpress关注公众号登录
  • 安庆网站建设为政务公开和网站建设先进个人
  • 建设市场监督管理网站空间 两个网站
  • 企业网站开发实训目的做网站销售 优帮云
  • jsp做网站案例老版本网站开发工具