package c;
/*abstract关键字用于修饰方法和类,分别称为抽象方法和抽象类
* 采用abstract关键字修饰的方法称为抽象方法,这种方法只有方法声明,而没有方法体及具体实现的步骤
* 抽象方法只能在抽象类中定义,并且抽象方法中不能用static、final、private修饰符,抽象方法只有在子类中实现
* 重写才能使用
* 抽象类中必须在其子类中将抽象方法全部实现才能用子类实例化对象,抽象类不能定义为final类,因为该类需要被继承。
*如果某一抽象类的子类未完全实现父类的抽象方法,则该子类也必须声明为抽象类
*/
abstract class countArea{ //抽象类
final double PI=3.1423;
abstract double getArea();//抽象方法
}
class Circle extends countArea{ //继承于抽象类
double r;
Circle(double r)
{
this.r=r;
}
double getArea()//实现抽象方法 否则Circle声明
{
return PI*r*r;
}
}
class Triangle extends countArea{ //继承于抽象类
int bottom,height;
Triangle(int buttom,int height)
{
this.bottom=buttom;
this.height=height;
}
double getArea(){ //实现抽象方法,但具体实现功能方法与Circle中不同
return 0.5*bottom*height;
}
}
public class AbstractWord {
public static void main(String args[]){
Circle c=new Circle(5);
Triangle t=new Triangle(5,10);
System.out.println("圆的面积为: "+c.getArea());//调用类中已经实现的方法
System.out.println("三角形的面积为: "+t.getArea());//调用对象所在类实现的方法
}
}
/*abstract关键字用于修饰方法和类,分别称为抽象方法和抽象类
* 采用abstract关键字修饰的方法称为抽象方法,这种方法只有方法声明,而没有方法体及具体实现的步骤
* 抽象方法只能在抽象类中定义,并且抽象方法中不能用static、final、private修饰符,抽象方法只有在子类中实现
* 重写才能使用
* 抽象类中必须在其子类中将抽象方法全部实现才能用子类实例化对象,抽象类不能定义为final类,因为该类需要被继承。
*如果某一抽象类的子类未完全实现父类的抽象方法,则该子类也必须声明为抽象类
*/
abstract class countArea{ //抽象类
final double PI=3.1423;
abstract double getArea();//抽象方法
}
class Circle extends countArea{ //继承于抽象类
double r;
Circle(double r)
{
this.r=r;
}
double getArea()//实现抽象方法 否则Circle声明
{
return PI*r*r;
}
}
class Triangle extends countArea{ //继承于抽象类
int bottom,height;
Triangle(int buttom,int height)
{
this.bottom=buttom;
this.height=height;
}
double getArea(){ //实现抽象方法,但具体实现功能方法与Circle中不同
return 0.5*bottom*height;
}
}
public class AbstractWord {
public static void main(String args[]){
Circle c=new Circle(5);
Triangle t=new Triangle(5,10);
System.out.println("圆的面积为: "+c.getArea());//调用类中已经实现的方法
System.out.println("三角形的面积为: "+t.getArea());//调用对象所在类实现的方法
}
}