向下转型失败,不能表达

/*
描述图书: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));
}

}


qq_王祥_2
浏览 1642回答 4
4回答

Goozy

       你那个不是向下转型的问题。我在eclipse看过,你那个方法在第一个if就退出了方法,下面的代码就不会执行了,eclipse报错是unreachable code:不会执行的代码。你把向下转型放在第一个if前面就没有报错。 还有所有类如果没有说明继承那个父类,默认是继承Object。                     
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java