A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 湛添友 中级黑马   /  2014-4-7 00:29  /  720 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

抽象类有构造方法没得?

3 个回复

倒序浏览
抽象类因为里面有抽象方法,所以叫抽象类。跟一般的类就在这里有区别。可以跟一般的类一样有构造方法。无参,有参的构造都行。抽象类的作用是可以声明抽象类的对象。但是不可以实例化对象,即不能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();

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

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
抽象类和普通类相比,就是多了抽象方法,所以它也有构造方法,你可以查阅API文档,即使是抽象类,它也是有构造方法的,比如字节输出流抽象类outputStream等。
抽象类定义规则:
1.抽象类和抽象方法都要用abstract关键字来修饰
2.抽象类不能被直接实例化,也就是不能直接用new关键字去产生对象。
3.抽象方法只需声明,不需要实现
4.含有抽象方法的类必须要被声明为抽象类,抽象类的子类必须覆写所有的抽象方法后才能被实例化,否则这个子类还是抽象类

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
有构造方法, 跟其他类描述没啥区别,该怎样描述还是描述,就是多了不确定的一部分而已
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马