您的位置:首页 > 编程语言 > Java开发

53 Java 抽象类和抽象方法

2014-02-09 15:03 295 查看
/*
* 抽象方法和抽象类
*  ——抽象方法和抽象类必须使用abstract ,有抽象方法的类只能被定义为抽象类 ,
*  抽象类里可以没有抽象方法
*  抽象方法里不能有方法体
*  抽象类不能被实例化,无法使用 new 关键字来调用抽象类的构造器创建抽象类的实例
*     —— 即使抽象类里不包含抽象方法没这个抽象类也不能创建实例
*/
public abstract class Shape {

{
System.out.println("执行Shap的初始化块...");
}
private String color;
//定义一个计算周长的抽象方法
public abstract double calPerimeter();

//定义一个返回星转的抽象方法
public abstract String getType();
//定义Shap的构造器,该构造器并不是用于创建Shape对象
//而是用于被子类调用
public Shape(){};
public Shape(String color)
{
System.out.println("执行Shape的构造器...");
this.color=color;
}
//color 属性的setter和getter方法
public String getColor() {
return color;
}

public void setColor(String color) {
this.color = color;
}

}


public class Triangle extends Shape {

//定义三角形的三个边
private double a;
private double b;
private double c;
//构造器
public Triangle(String color,double a,double b,double c)
{
super(color);
this.setSides(a, b, c);
}

//设置三条边
public void setSides(double a,double b,double c)
{
if(a>=b+c ||b>=a+c ||c>=a+b)
{
System.out.println("三角形三边之和必须大雨第三边");
return;
}
this.a=a;
this.b=b;
this.c=c;
}

//重写Shape 类的计算周长的抽象方法
@Override
public double calPerimeter() {
// TODO Auto-generated method stub
return a+b+c;
}

//重写Shape类的返回星转的抽象方法
@Override
public String getType() {
// TODO Auto-generated method stub
return "三角形";
}

public static void main(String[] args) {
// TODO Auto-generated method stub

Triangle tri=new Triangle("red", 3, 4, 5);
System.out.println("周长:"+tri.calPerimeter());
System.out.println("Color:"+tri.getColor());
System.out.println("Type:"+tri.getType());

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: