【上机作业】【java】2010.4.6 抽象类的练习
抽象类的特点:
1.抽象类是用于定义父类用的,是供子类继承用的
2.抽象类中可以定义属性和方法(是子类所具有的公共属性和公共方法),还可以声明抽象方法
3.抽象类不能对象实例化(不能创建对象)
作业:1.定义一个抽象类shape,它包含一个抽象方法getArea(),从shape类派生出rectangle和circle类,这两个类都用getArea()方法计算对象的面积。编写应用程序使用rectangle和circle类。
要求:定义rectangle和circle类的构造方法,初始化成员变量
abstract class shape{
abstract double getArea();
}
class rectangle extends shape{
double lengh,wide;
rectangle(double l,double w){
lengh=l;
wide=w;
}
double getArea(){
return lengh*wide;
}
}
class circle extends shape{
double radii;
circle(double r){
radii=r;
}
double getArea(){
return radii*radii*3.14;
}
}
class display{
public static void main(String []args){
rectangle r=new rectangle(5.0,4.0);
circle c=new circle(3.0);
System.out.println(“rectangle’s Area is:”+r.getArea());
System.out.println(“circle’s Area is:”+c.getArea());
}
}
2.定义一个抽象类交通工具编写公共属性和方法
定义汽车,轮船,火车等子类实现抽象类中的方法
abstract class Vehicle{
String color;
double speed;
String kind;
Vehicle(String c,double s){
color=c;
speed=s;
}
void show(){
System.out.println(“—————————-“);
System.out.println(“color is:”+color);
System.out.println(“speed is:”+speed+” km/h”);
System.out.println(“kind is :”+kind);
}
}
class car extends Vehicle{
car(String c,double s){
super(c,s);
kind=”car”;
}
}
class ship extends Vehicle{
ship(String c,double s){
super(c,s);
kind=”ship”;
}
}
class train extends Vehicle{
train(String c,double s){
super(c,s);
kind=”train”;
}
}
class display2{
public static void main(String []args){
car c=new car(“blue”,50.0);
ship s=new ship(“white”,40.0);
train t=new train(“black”,100.0);
c.show();
s.show();
t.show();
}
}