高手请进,抽象类的基础问题

morningnet 2005-07-23 01:29:44
abstract class Book{
int bookPage;
float discount;
double price;
abstract void show();//抽象方法
abstract double getPrice(int bookPage,float discount);
public Book(int bookPage,float discount){
this.bookPage=bookPage;
this.discount=discount;
}
public void show_price(){System.out.println("this book's price is "+price);
}
}

class Science_book extends Book{
public Science_book(int bookPage,float discount){
super(bookPage,discount);
}
public void show(){
System.out.println("the book's kind is discount");

}
public double getPrice(int bookPage,float discout){
return bookPage*0.1*discount;
}
}

public class Booksell{
public static void main(String[] arg){
Science_book bb=new Science_book(530,0.7f);
bb.price=(int)bb.getPrice(530,0.7f);
bb.show();
bb.show_price();
Literature_book ll=new Literature_book(530,0.7f);
ll.price=(int)ll.getPrice(530,0.7f);
ll.show();
ll.show_price();
}
}

问题是程序中有没有"abstract void show();//抽象方法"都是一样的结果,不明白抽象方法拿来干什么用??????????
...全文
130 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
keel47 2005-07-23
  • 打赏
  • 举报
回复
其实抽象的类就是用来限定其继承类必须要包含那几个方法来用的,抽象类本身不能被new成对象,而只能被其他类继承后才能new成对象。
作一个有点规模的项目时,初期设计总要为某个模块些几个基类,定义几个将来实现的方法,这时候抽象类就有用了,你可以只写函数名,返回值和参数以及要抛出的Exception,只后规定手下的程序员,所有的类必须继承这个类!OK,你的手下就只好规规矩矩的按你设计的那几个方法了,呵呵。
congliu 2005-07-23
  • 打赏
  • 举报
回复
抽象类的作用是只定义行为不定义具体行为的实现
实现部分由他的派生类来重载后实现
joyco 2005-07-23
  • 打赏
  • 举报
回复
在本题中,是没用到,可他的功能是非常大的
joyco 2005-07-23
  • 打赏
  • 举报
回复
抽象方法是用来让继承它的子类来重载的
不同的子类,可以根据自己情况的不同有不同的重载;
类似与接口中的方法
interhanchi 2005-07-23
  • 打赏
  • 举报
回复
假设有一个方法是:
Test(Book a){
a.show();
}
这样的话你如果没有abstract void show();的话,就无法编译通过.
而上面的那个方法就是多态,假设你有Book有几个派生类,而你如果想调用show()的话,只需要写这一个方法就可以了!
gflpower 2005-07-23
  • 打赏
  • 举报
回复

只定义行为

而不定义具体行为的实现

他的实现部分由他的派生类来重载后,实现
morningnet 2005-07-23
  • 打赏
  • 举报
回复
自己顶
morningnet 2005-07-23
  • 打赏
  • 举报
回复
Literature_book ll=new Literature_book(530,0.7f);
ll.price=(int)ll.getPrice(530,0.7f);
ll.show();
ll.show_price();
这部分多余的,可以不要了!

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧