java中,抽象类可以有构造方法吗?

如题所述

抽象类可以有构造方法,只是不能直接创建抽象类的实例对象而已。

在继承了抽象类的子类中通过super(参数列表)调用抽象类中的构造方法

示例代码如下:

运行结果:

温馨提示:内容为网友见解,仅供参考
第1个回答  2009-06-06
抽象类当然有构造方法,而且抽象类的构造方法还会执行呢。

你可以写一个抽象类,然后构造方法写点东西,在写一个子类,然后你打断点,一步一步跟踪下 就知道抽象类的构造方法是会执行的
第2个回答  2009-06-06
子类在调用父类时 无论自己有没有构造方法都会先去执行父类无参的函数。也就是说class Figure中有一句隐含构造方法 Figure(){}
Rectangle r= new Rectangle(9,5);会去先执行Figure中不带参的构造函数,再执行自己的构造函数Rectangle(double a,double b) 因为他调用了super(a,b); 再执行
Figure(double a,double b)
Triangle t= new Triangle(10,8);它与上面类似
Figure figref; 它只是创建了一个对象
figref=r;对对象的赋值就如同学生A 研究生B
研究生肯定是学生 学生不一定是研究生
只是小弟的愚见 有错误之处请指出 小弟也只是初学
参考 http://zhidao.baidu.com/question/41148169.html?si=10

构造方法十分重要,他的名称必须和类名相同,并且没有返回值,在对象创建时被调用。在类中主要扮演着初始化全局变量的角色,作为方法的一员它同样拥有参数,运用参数使对象在建立的时候与外界交互,获得需要的参数来完善对象的初始化过程。

这样说可能你觉得比较抽象,我举个例子给你看:

ex1:

public class Example1 {
private int i;
private String s; // 在这里我们声明了一个int和一个String,但是他们没有被初始化!
//下面开始运用构造方法来初始化
public Example1(String s1;int i1) {
i=i1;
s=s1;
}
// 通过构造方法完成了初始化
public static void main(String[] args) {
Example1 ex1=new Example1("I am example1",10);
System.out.println("i="+ex1.i);
System.out.println("s="+ex1.s);
}

如上所示,在main方法里我们创建了一个example1的对象ex1,并运用构造方法为变量i和String s赋值。

希望对你理解构造方法有所帮助,谢谢!
参考 http://zhidao.baidu.com/question/46180637.html?si=9

1.
接口完整定义
public interface itest
{
public void itest1();
public void itest2();
}

接口不可以定义成STATIC和FINAL的

类实现接口
public class test implements itest
{
public void itest1()
{
}
public void itest2()
{
}
}
如果要实现多个接口
public class test implements itest1,itest2,……

2.
public Son(){......} 是构造器,只跟当前类有关系,构造器不可以被继承,所以不可以重写。

3.
抽象类
public abstract class atest
{
abstract public void test();
}
子类中初始化,只要把抽象的具体化就好,比如方法加上方法体
public class aatest extends atest
{
public void test()
{
}
}
因为构造器里的变量与类的变量重名,this.year代表类的变量,year代表构造器里的变量。
参考 http://zhidao.baidu.com/question/38000016.html?si=8
声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static fin本回答被提问者采纳
第3个回答  2009-06-08
抽象类可以有构造方法,一般是子类继承这个抽象类时用的
第4个回答  2009-06-06
可以有,一个类中只要有一个抽象方法那么这个类就是abstract 的,而且子类在继承这个抽象类时必须实现抽象方法。
相似回答