标签:抽象类;Java;
一,抽象类介绍抽象类:简单点来说就是不能实例化的类(或者说不能用new方法实例化的类)抽象类有点类似“模板的作用,其目的是根据他的格式来创建和修改新的类。(比如:盖房子首先有要画图纸,在照着图纸进行造房子。图纸就好比如抽象类,建房子就好比如抽象类派生的子类)
抽象方法:含有Abstract关键字开头的方法叫做抽象方法。注意抽象方法声明中修饰符static和abstract不能同时使用。抽象方法没有方法体,否则会报错。
原因解释:
1. 抽象方法为什么没有方法体:抽象类的抽象方法需要继承它的子类来实现,如果有方法体,子类去玩吗?本来抽象类起到的类似于”模板”的作用,好比于一种参考。
2. 抽象方法为什么abstract和static不能同时使用:这要探讨static修饰符的特性了,静态方法属于整个类的,静态方法只能访问静态成员变量或调用静态的成员方法。静态方法和静态属性可以被继承,但是没有被重写而是被隐藏。(这个下篇文章我会讲解),抽象类被继承后抽象方法会重写,而静态方法会被隐藏没有重写。
关系:含有抽象方法的类叫做抽象类,抽象类不一定还有抽象方法。
abstract public class A {
public int a=10;
public A()
{
}
public void print()
{
System.out.println("抽象类中的普通方法");
}
public static void printStatic()
{
System.out.println("抽象类中的静态犯法");
}
public static void main(String[] args) {
A.printStatic();
A a=new A();//对抽象类进行实例化
}
}
报错
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Cannot instantiate the type A
at com.demo.Abstract.Test.A.main(A.java:15)
标签:抽象类;Java;
原文地址:http://blog.51cto.com/12666319/2114396