1 问题
abstract类不能用 new运算符创建对象,必须产生其子类,由子类创建对象。若 abstract类的类体中有 abstract()方法,则只允许声明,不能带有方法体,而该类的子类必须实现 abstract()方法。一个abstract类只关心子类是否具有某种功能,不关心功能的具体实现,具体实现由子类负责。现举例说明该类的相关知识。
2 方法
1、抽象类中不一定有抽象方法,也可以有:成员变量,构造方法,一般成员方法,构造代码块,静态代码块。
2、继承抽象类的类如果不是抽象类,那么必须重写抽象类中的抽象方法,不然会报错
3、抽象类一定要有子类继承它,并重写抽象方法,否则毫无意义。
4、抽象类中有构造方法,但不能创建对象,是用子类调用的。
代码清单 1
package week; public abstract class People { int a=10;// 成员变量 public People(){ System.out.println("a="+a); }//构造方法 public abstract void sleep();//抽象方法 public void run(){ System.out.println("多跑步对身体好!"); }//成员方法 } //继承抽象类 public class Student extends People{ //必须重写父类抽象方法 public void sleep(){ System.out.println("学生在宿舍睡觉..."); } //特有方法 public void leaning(){ System.out.println("学生在教室学习..."); } } //继承抽象类 public class Teacher extends People{ public void sleep(){ System.out.println("老师在家睡觉..."); } public void speak(){ System.out.println("老师在教师讲课..."); } } //测试类 public class Test03 { public static void main(String[] args) { Student student=new Student(); Teacher teacher=new Teacher(); student.sleep(); teacher.sleep(); student.leaning(); teacher.speak(); } } |
3 结语
针对abstract类的问题,我们举例进行了说明,构造了People类和两个继承类(Student类和Teacher类),明白了abstract类的相关知识通过以上实验,证明该方法是有效的。该程序还比较简陋,如果更加完善还可以应用于很多领域。