1、一个类不能同时被 abstract 和 final 修饰。
2、如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。
3、抽象类可以包含抽象方法和非抽象方法。
4、抽象方法是由子类来实现。
5、抽象方法不能被声明成 final 和 static。
6、任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。
1 //定义一个抽象类 2 public static abstract class sum{ 3 abstract int Get(int x); 4 abstract int Get1(int x); 5 public int ss(int y){ 6 return y; 7 } 8 } 9 //子类是非抽象类 10 public static class Printi extends sum{ 11 //子类为非抽象类,则父类的方法必须实现 12 int Get(int x) { 13 return 0; 14 } 15 int Get1(int x) { 16 return 0; 17 } 18 } 19 //子类也是抽象类 20 public abstract class Printi2 extends sum{ 21 //子类为抽象类,则父类的抽象方法可以不实现 22 abstract int Get1(int x); 23 }
在main函数中调用2种方法:
1 public static void main(String[] args) { 2 //第一种new一个抽象类父类的对象,实现内部类的方法 3 sum su = new sum() { 4 int Get1(int x) { 5 // TODO Auto-generated method stub 6 return 0; 7 } 8 int Get(int x) { 9 // TODO Auto-generated method stub 10 return 0; 11 } 12 }; 13 //然后调用 14 su.Get(0); 15 //第二张,生成非抽象类的子类对象,访问抽象类的方法 16 Printi printi = new Printi(); 17 }