黑马程序员技术交流社区

标题: 抽象类 [打印本页]

作者: 湛添友    时间: 2014-4-7 00:29
标题: 抽象类
抽象类有构造方法没得?
作者: 张耀扬    时间: 2014-4-7 00:41
抽象类因为里面有抽象方法,所以叫抽象类。跟一般的类就在这里有区别。可以跟一般的类一样有构造方法。无参,有参的构造都行。抽象类的作用是可以声明抽象类的对象。但是不可以实例化对象,即不能new对象。必须依靠子类来实例化
例如:abstract class A{
         int i;//无参构造
         public A(){}//有参构造
         public A(int v){i=v;}
         public abstract void fun();
}
         calss B extends A{
         public B(){}
         public B(int v){
         super(v);
}
         public void fun(){
         System.out.println("B");
}
}
public class C{
A a=new B();
a.fun();

}需要注意的是:抽象类被继承,子类必须复写其中的所有抽象方法。

作者: 钟成军    时间: 2014-4-7 00:42
抽象类和普通类相比,就是多了抽象方法,所以它也有构造方法,你可以查阅API文档,即使是抽象类,它也是有构造方法的,比如字节输出流抽象类outputStream等。
抽象类定义规则:
1.抽象类和抽象方法都要用abstract关键字来修饰
2.抽象类不能被直接实例化,也就是不能直接用new关键字去产生对象。
3.抽象方法只需声明,不需要实现
4.含有抽象方法的类必须要被声明为抽象类,抽象类的子类必须覆写所有的抽象方法后才能被实例化,否则这个子类还是抽象类
作者: ノtrack    时间: 2014-4-7 09:16
有构造方法, 跟其他类描述没啥区别,该怎样描述还是描述,就是多了不确定的一部分而已




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2