java中的抽象类和抽象方法
我正在学java对里面的抽象类和抽象方法不太懂,就是不太明白他和别的类和方法有什么优点.什么时候才可以用到他.最好找一个经典的实例.不要在网上粘贴概念之类的东西.如果好的...
我正在学java对里面的抽象类和抽象方法不太懂,就是不太明白他和别的类和方法有什么优点.什么时候才可以用到他.最好找一个经典的实例.不要在网上粘贴概念之类的东西.如果好的话我会加分的.
展开
展开全部
其实,你不用担心的,我也是从你那时候过来的,一开始学习java也搞不懂为什么用抽象类和抽象方法,那是因为你还处于学习java的初级阶段,有些东西,在这个阶段是很难搞懂的,除非你特强,当你把java的基础理论学完后,再学设计模式,你就会豁然开朗,体会到面向对象设计的精髓,抽象只是为了更好的程序编制,你可以想一下,如果你做一个大的项目,比如像xp操作系统,如果没有很好的逻辑性,是不可想象的,而抽象就可以让程序之间实现复用,减少冗余代码,是很有作用的,多的我也不多说了,我想你还是不用急于求成,先搞懂基本定义及可以了,想深入了解,那你就深入学习java的方方面面吧!
展开全部
我也是正在学java,我们用的教程是java语言程序设计(第二版),在抽象类和抽象方法这一节有这么一个例子,当然也不知你是不是学的这本书,不过也没什么,我现在把它写出来,大家一起学习.
例:计算底面半径为2高为3的圆柱体体积和长,宽,高分别为3,2,4的长方体体积.
abstract class Shape{ ////定义抽象类Shape
double radius,length,width,height; //定义一些计算所需的变量
abstract double vol(); //定义无方法体的抽象方法vol
Shape(double r,double h){
radius=r;
height=h;
}
Shape(double l,double w,double h){
length=l;
width=w;
height=h;
}
}
class Circle extends Shape{
Circle(double r,double h){
super(r,h);
}
double vol(){
return(3.1416*radius*radius*height);
}
}
class Rectangle extends Shape{
Rectangle(double l,double w,double h){
super(l,w,h);
}
double vol(){
return(length*width*height);
}
}
class AbstractClassDemo{
public static void main(String args[]){
Circle c=new Circle(2,3);
Rectangle r=new Ractangle(3,2,4);
System.out.println("圆柱体体积="+c.vol())
System.out.println("长方体体积="+c.vol())
}
}
我觉得用抽象类来完成这个功能有一点多余,因为它要对参与运算的变量先定义在一个类中,然后在采用类的继承调用之前定义变量的类.
当然也可能是我才书学浅,对抽象类了解不深.
例:计算底面半径为2高为3的圆柱体体积和长,宽,高分别为3,2,4的长方体体积.
abstract class Shape{ ////定义抽象类Shape
double radius,length,width,height; //定义一些计算所需的变量
abstract double vol(); //定义无方法体的抽象方法vol
Shape(double r,double h){
radius=r;
height=h;
}
Shape(double l,double w,double h){
length=l;
width=w;
height=h;
}
}
class Circle extends Shape{
Circle(double r,double h){
super(r,h);
}
double vol(){
return(3.1416*radius*radius*height);
}
}
class Rectangle extends Shape{
Rectangle(double l,double w,double h){
super(l,w,h);
}
double vol(){
return(length*width*height);
}
}
class AbstractClassDemo{
public static void main(String args[]){
Circle c=new Circle(2,3);
Rectangle r=new Ractangle(3,2,4);
System.out.println("圆柱体体积="+c.vol())
System.out.println("长方体体积="+c.vol())
}
}
我觉得用抽象类来完成这个功能有一点多余,因为它要对参与运算的变量先定义在一个类中,然后在采用类的继承调用之前定义变量的类.
当然也可能是我才书学浅,对抽象类了解不深.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询