涉及知识点:
接口、抽象修饰符abstract
abstract主要点:
一、改关键字可以修饰类的定义,方法的定义,但不可以修饰属性的定义
二、修饰类定义时,该类称为抽象类,抽象类不能用来创建对象
代码区
package work;
public abstract class jihe {
public abstract double getzhouchang();
public abstract double getmianji();
}
在上述代码中,因为“jihe”被定义成了抽象类,所以在该类中,不需要定义构造函数,只因构造函数就是用来创建对象的
错误代码:
public abstract class jihe {
public abstract double getzhouchang(); //周长的抽象方法
public abstract double getmianji(); //面积的抽象方法
public jihe()
{
}
}
mian函数中创建对象:
jihe temp = new jihe() //该处就会报错
三、可以修饰方法的定义,修饰方法定义时,该方法没有方法体
四、抽象方法必须在抽象类中定义,否则会报错,抽象类中不一定有抽象方法,也就是说,可以定义抽象类,在抽象类中,可以没有抽象方法,但是,若定义了抽象方法,那么该类必须是抽象类
五、抽象类的非抽象子类中,必须给出父类中所定义的抽象方法的方法体
代码区:
父类(几何代码)代码:
package work;
public abstract class jihe {
public abstract double getzhouchang();
public abstract double getmianji();
}
子类(矩形代码)代码:
package work;
public class juxing extends jihe{
private double chang;
private double kuan;
public juxing()
{
}
public juxing(double achang,double akuan)
{
this.chang = achang;
this.kuan = akuan;
}
@Override //父类中周长方法的方法体
public double getzhouchang() {
// TODO Auto-generated method stub
return (chang+kuan)*2;
}
@Override //package work;
public double getmianji() {
// TODO Auto-generated method stub
return chang*kuan;
}
}