• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

关于继承的问题

package xuexi;public abstract class Shape {      public int a=20;      public int b=30;      public int r=4;           final double PI=3.14;     }package xuexi;public abstract class Rectangle extends Shape{               public void Zhouchang()                                 {System.out.println("周长为:"+(a+b)*2);                              }}子类不是拥有父类的属性和方法了么,为什么第二个代码输出语句a,b报错,我用this.a不行,Shape.this.a也不行

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与4

首先,你第二个代码的方法没有对象去调用它,它怎么会去执行那个方法里面的语句呢。然后,当你要去实例化对象的时候,也只能实例化这些抽象方法的子类(这个子类不是抽象类来的),抽象类是不能直接实例化的,所以你的代码需要这样子:
package xuexi;
public abstract class Shape {
      public int a=20;
      public int b=30;
      public int r=4;     
      final double PI=3.14;   
}
package xuexi;
abstract class Rectangle extends Shape {
        public void Zhouchang()


        {
                System.out.println("周长为:" + (a + b) * 2);


        }
}


// 必须有普通类去继承抽象类,抽象类才能被实例化
class NormalZiLei extends Rectangle {


}


public class WoCaiShiZhenZhengDeLei {
        public static void main(String[] args) {
                Rectangle rectangle = new NormalZiLei();
                rectangle.Zhouchang();
        }
}

使用道具 举报

重新写一下注意类职责问题好习惯早养成

使用道具 举报

亲爱的,类前面应该没有public吧?我反正从来没遇到过,还有就是父类是抽象类,子类也是abstruct抽象类,抽象类中的方法和属性要在非抽象类的子类中去实现哦,所以你可以把子类的abstruct去掉,就可以了哦!

使用道具 举报

继承是为了实现代码重用,C++语言支持多继承成,而Java不支持,只能单继承一个基类

使用道具 举报

发新帖

发布任务需求已有1031290位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!