为了账号安全,请及时绑定邮箱和手机立即绑定

向下转型失败,不能表达

向下转型失败,不能表达

qq_王祥_2 2017-01-28 16:11:18
/* 描述图书:book       作者,书名,价格。     行为:6个set get     建立book比较相同的依据。只要书名相同就视为同一本书。  字符串判断相同:请查api文档。equals方法,String类重写Object类中的equals     建立book对象的字符串表现形式。 Book[作者:+  书名 +  价格]     */ class Book extends Object{ //属性 private String author; private String name; private double price; //六个方法 void  setAuthor(String author){     this.author=author; } String  getAuthor(){     return this.author; } void  setName(String name){     this.name =name; } String  getName(){     return this.name; } void  setPrice(double price){     this.price=price ; } double getPrice(){     return this.price; } //重写equals方法. public boolean equals(Object obj){//object类型的参数  //如果调用该方法的对象和传入该方法的对象是同一个则返回true; if (this==obj)     return true; //比较子类中的方法,应向下转型 if (!(obj instanceof Book))     return false; throw new ClassCastException("数据类型错误,请改正"); Book book=(Book)obj; return this.name==book.name; } } class objectTest{     public static void main(String[]args){     Book k1=new Book();     k1.setName("古龙");     k1.getName();    Book k2=new Book();     k2.setName("天涯明月刀");     k2.getName();     System.out.println(k1.equals(k2)); } }
查看完整描述

4 回答

?
Goozy

TA贡献6条经验 获得超4个赞

       你那个不是向下转型的问题。我在eclipse看过,你那个方法在第一个if就退出了方法,下面的代码就不会执行了,eclipse报错是unreachable code:不会执行的代码。你把向下转型放在第一个if前面就没有报错。 还有所有类如果没有说明继承那个父类,默认是继承Object。                     

查看完整回答
1 反对 回复 2017-01-28
  • 4 回答
  • 0 关注
  • 1641 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信