是不是java的抽象类都不必有构造方法?

 我来答
百度网友090def6
2014-05-06 · TA获得超过2211个赞
知道小有建树答主
回答量:558
采纳率:100%
帮助的人:704万
展开全部
  1. 从Java语法上来说,抽象类【可以】没有构造方法,但是Java会默认有一个无参构造方法

  2. 从设计上来说,抽象类【不一定】有构造方法

    A. 在Java的面向对象设计中,类是is-a,是一类对象的抽象

    B. 那么抽象类也是一类对象的抽象,只是有些具体的实现需要子类实现


  举个简单的例子:

  有个抽象类形状:Xing

                有2个属性:边框颜色color、边框宽度size

                有1个方法:打印print() 

       因为正方形、长方形的打印方式都不一样,那么print() 为抽象方法

  设计1:提供颜色color、宽度size的set方法,提供数据

         2:采用构造函数,直接传入颜色color、宽度size

 如下:形状

// 形状类
public abstract class Xing {
protected String color;
protected int size;

// 构造方法
public Xing(String color, int size) {
this.color = color;
this.size = size;
}

public abstract void print(); // 打印方法
}

正方形

// 正方形
public class Zfx extends Xing {
// 这里就约束了子类必须要给定这2个属性
// 而且必须有这个构造,不然编译不让过去
public Zfx(String color, int size) {
super(color, size);
}

@Override
public void print() {
System.out.println("我是正方形,边宽度" + size +" ,颜色" + color);
}
}

例子简单,不一定很正确,只是解释这种情况,多包涵


小结:抽象类的有参构造方法,不是语法上的规定,更多的是一种设计的方式


亲,如果回答满意,亲及时采纳,谢谢!

匿名用户
2014-05-06
展开全部
任何自己的类,都可以不写构造(JAVA会默认一个无参数的)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陆小瓴
2014-05-06
知道答主
回答量:9
采纳率:0%
帮助的人:7.8万
展开全部
我觉得不需要,抽象类不能实例化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式