抽象类是Java语言中对抽象概念进行定义的机制。
抽象类需要用abstract修饰,不能通过new来实例化。
抽象类所代表的是“is-a”的关系。
抽象类中可有构造器,作用有两个:初始化变量、子类中调用。
当子类创建对象时,会自动调用父抽象类中的无参构造器(如果有的话)。
抽象类中可以有抽象方法,也可以没有。
子类需要实现父抽象类中的所有抽象方法,否则此类也需要用abstract修饰。
代码1:
package jichu; public abstract class ClassA { private String s1; ClassA() { s1 = "this is s1 in ClassA"; } ClassA(String s) { s1 = s; } public String method1() { return s1; } public abstract String method2(); }
代码2:
package jichu; public class ClassB extends ClassA { ClassB() { } ClassB(String s) { super(s); } public String method2() { return "this is method2"; } }
调用:
ClassB b1 = new ClassB(); ClassB b2 = new ClassB("sss"); System.out.println(b1.method1()); System.out.println(b2.method1()); System.out.println(b2.method2());
打印:
this is s1 in ClassA sss this is method2