在编写一个类时,为该类定义一些方法,这些方法用于描述该类的行为方式,这些方法都有具体的方法体,但是在某些情况下,某个父类仅知道其子类应该包含那些方法,却无法准确的知道子类实现这些方法的细节。
可以将方法定义为抽象方法,抽象方法没有具体的方法实现,但是该方法必须由继承的子类重写,这样该方法就起到了约束规范的作用,又不影响最初的设计路线。
抽象类是专门设计用来让子类继承,抽象方法必须被子类重写。
在Java语言中,使用abstract关键字修饰一个类时,该类就是抽象类,使用abstract关键字修饰一个方法时该方法即为抽象方法。
但是在此提醒大家,在调用的时候要明确调用的是哪一个类,不然会报错。
以下是代码参考
//抽象方法与抽象类
public abstract class Demo {
private String color;
//抽象类 关键字 abstract
//定义计算周长的抽象方法
public abstract double a();
//定义一个返回图形的方法
public abstract String b();
public Demo(String color) {
super();//super关键字是调用方法
System.out.println();
this.color = color;
}
public static void main(String[] args) {
month s1 = new Triangle("红色",10,11,12);
System.out.println("形状"+s1.b()+",周长:"+s1.a());
}
}
class Triangle extends Demo{//三角形
private double x,y,z;
public Triangle(String color,double x,double y,double z) {
super(color);
this.side(x,y,z);
}
//写一个方法,判断是否是三角形
private void side(double x, double y, double z) {
if (x>y+z || y>x+z || z>x+y) {
System.out.println("两边之和必须大于第三边");
return;
}
this.x=x;
this.y=y;
this.z=z;
}
@Override
public double a() {
return x+y+z;
//返回图形的周长
}
@Override
public String b() {
return "三角形";
}
}