抽象类
- abstract 抽象类:java里的类是单继承的(extends),但接口是多继承的
public abstract class Demo01 {}
- abstract 抽象方法,只有方法名,没有方法的实现
public abstract void dosomething();
-
注意点:
- 不能new这个抽象类,只能靠子类去实现它:约束!
- 抽象中可以写普通方法, 抽象方法必须在抽象类中(如果类中存在抽象方法就必须是抽象类)
-
抽象类的所有方法,继承它的子类,都必须要实现(重写)它的方法,除非它也是抽象的(abstract 关键字)。
public abstract class Student extends Demo01{ @Override public void dosomething() {
-
思考:
- 抽象类有构造器吗? 回答:有的!
public abstract class Demo01 { public abstract void dosomething(); public Demo01() { System.out.println("抽象类的无参构造"); } public Demo01(int a){ System.out.println("抽象类的有参构造"); } } public class Student extends Demo01{ public Student() { System.out.println("子类的无参构造"); } public Student(int a) { super(3); System.out.println("子类的有参构造"); } } public class Application { public static void main(String[] args) { Student s1 = new Student(); System.out.println("========="); Demo01 d1 = new Student(2); //new Demo01(); 抽象类不可以实例化 } } /*输出结果 抽象类的无参构造 子类的无参构造 ========= 抽象类的有参构造 子类的有参构造