1、abstract类不能用来创建abstract类的对象;
2、final类不能用来派生子类,因为用final修饰的类不能被继承;
3、如2所述,final不能与abstract同时修饰一个类,abstract类就是被用来继承的;
4、类中有abstract方法必须用abstract修饰,但abstract类中可以没有抽象方法,接口中也可以有abstract方法。
abstract class MyAbstractClass{ int a = 3; public MyAbstractClass(int a) { this.a = a; } } public class Test { public static void main(String[] args) { MyAbstractClass myAbstractClass = new MyAbstractClass(2) { }; System.out.println(myAbstractClass.getClass().getName()); MyAbstractClass myAbstractClass1 = new MyAbstractClass(3) { }; } }
package 抽象类可否实例化对象; final class Test$2 extends MyAbstractClass { Test$2(int a) { super(a); } }
得出结论 : 使用抽象方法构造出来的类是实现了这个抽象类的匿名内部类