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 的,而且子类在继承这个抽象类时必须实现抽象方法。

java中,抽象类可以有构造方法吗?
抽象类可以有构造方法,只是不能直接创建抽象类的实例对象而已。在继承了抽象类的子类中通过super(参数列表)调用抽象类中的构造方法 示例代码如下:运行结果:

java抽象类必须有抽象方法吗
抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。抽象类本身不具备实际的功能,只能用于派生其子类。抽象类中可以包含构造方法, 但是构造方法不能被声明为抽象。抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。

...中抽象类虽然不能够创建对象,但是可以有构造方法,构造方法也可以带参...
创建实例,这是显示的new出来一个对象,抽象类是不允许new的,但是抽象类可以有构造方法,我们知道通常创建类的实例需要new 类();这种形式,但是只能说new调用构造方法才是创建对象,而抽象类不可以有实例,但是可以调用构造方法,

在JAVA的抽象类中,可不可以写带参数的构造方法。
1 ,在JAVA的抽象类中,可以写带参数的构造方法。2,如果这个抽象类被继承,在子类中可以用super调用这个构造方法 俗话说 实践出真知 我也是刚刚在Eclipse上写的 呵呵 回答完毕

java抽象类中的构造方法有什么作用?如何理解?
1、java抽象类 使用了关键词abstract声明的类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体。2、对比接口 语法定义层 在abstract class方式中,Demo可以有自己的数据成员,也可以有非...

什么是抽象类?使用abstract格式修饰抽象方法
首先,不能直接创建抽象类的对象,只能通过其非抽象子类创建。其次,抽象类可以有构造方法,用于子类初始化。抽象类中不包含抽象方法的目的是限制创建对象,而非抽象子类必须完全重写父类的抽象方法,否则自身也需声明为抽象类。抽象类的主要目标是作为子类的模板,确保它们遵循特定的编程模式。

java接口和抽象类的区别
1). 接口里只能包含抽象方法,不可以包含普通的方法,而抽象类可以包含普通方法 2). 接口里不可以包含构造方法,而抽象类里可以包含构造方法 3). 接口里不能定义静态方法,而抽象类里可以定义静态方法 4). 接口里声明的变量默认是 public static final 修饰的,而抽象类里可以包含普通的变量 5). ...

Java抽象类是什么概念?
\/*理解JAVA抽象类 1.抽象类不能被实例化.2.抽象类有构造器,且他的构造在他的子类被实例化时被调用的顺序和普通类调用的顺序是一样的(先父后子).3.抽象类内部的方法可以不是抽象方法,也就是说抽象类内部可以有具体的方法.4.抽象类的抽象方法属于一种不完整的方法,只含有声明和定义,没有方法...

Java的接口和C++的虚类的相同和不同处?
c++虚类相当与java里面的抽象类,与接口的不同之处如下:1、一个子类只能继承一个抽象类(虚类),但能实现百多个接口;2、一个抽象类可以有构造方法,接口没有构造方法;3、一个抽象类中的方法不一定是抽象方法,即其中的方法可以有实现(有方度法体),接口中的方法都是抽象方法,不能有方法体,只有...

...必须有明确的构造函数。 这句话是什么意思?求JAVA高手指点
1.凡是抽象类,就一定会是某个类的父类!否则,这个抽象类的存在没有意义,因为抽象类不能被实例化。2.既然抽象类一定是某一个类的父类,所以,这个抽象类一定要有构造函数!因为在子类的构造函数中不管显式,还是隐式,都必须使用到super语句。这样,抽象类的子类才能成功实例化。3.抽象类也有构造...

相似回答