Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
这个java代码在继承方面有什么错误? 包继承最新版本; 公共类继承最新版本{ 公共静态void main(字符串[]args){ 人员p1=新人员(12名,“ekaf”、“亚特兰大”、“男性”); 雇员e1=新雇员(23,“埃卡夫”,“亚特兰大”,“男性”,12000); e1.ageCategory(); e1.性别认同(); e1.显示(); ((雇员)p1.display(); } } 班主任{ 智力年龄; 字符串名; 字符串地址; 字符串年龄组; 性别保护; 无法访问私有字符串;//子类无法访问 person(整数年龄、字符串名称、字符串地址、字符串性别){ 这个。年龄=年龄; this.name=name; 这个地址=地址; 这个。性别=性别; } 字符串ageCategory(){ 如果(年龄)_Java_Inheritance - Fatal编程技术网

这个java代码在继承方面有什么错误? 包继承最新版本; 公共类继承最新版本{ 公共静态void main(字符串[]args){ 人员p1=新人员(12名,“ekaf”、“亚特兰大”、“男性”); 雇员e1=新雇员(23,“埃卡夫”,“亚特兰大”,“男性”,12000); e1.ageCategory(); e1.性别认同(); e1.显示(); ((雇员)p1.display(); } } 班主任{ 智力年龄; 字符串名; 字符串地址; 字符串年龄组; 性别保护; 无法访问私有字符串;//子类无法访问 person(整数年龄、字符串名称、字符串地址、字符串性别){ 这个。年龄=年龄; this.name=name; 这个地址=地址; 这个。性别=性别; } 字符串ageCategory(){ 如果(年龄)

这个java代码在继承方面有什么错误? 包继承最新版本; 公共类继承最新版本{ 公共静态void main(字符串[]args){ 人员p1=新人员(12名,“ekaf”、“亚特兰大”、“男性”); 雇员e1=新雇员(23,“埃卡夫”,“亚特兰大”,“男性”,12000); e1.ageCategory(); e1.性别认同(); e1.显示(); ((雇员)p1.display(); } } 班主任{ 智力年龄; 字符串名; 字符串地址; 字符串年龄组; 性别保护; 无法访问私有字符串;//子类无法访问 person(整数年龄、字符串名称、字符串地址、字符串性别){ 这个。年龄=年龄; this.name=name; 这个地址=地址; 这个。性别=性别; } 字符串ageCategory(){ 如果(年龄),java,inheritance,Java,Inheritance,工资怎么变成24000 在employe类的genderIdentity()方法中,您使用==将性别与男性进行比较。此条件为false,因为性别和男性是不同的字符串对象(即使它们具有相同的内容/文本)。您应该使用.equals()来比较这两个字符串。现在,工资增加了一倍,因为gender==“male”和gender==“female”都没有返回true 为什么agecategory为空我写e1.agecategory时对象e1没有得到年龄类别 编写e1.agecategory()时,调用名为a

工资怎么变成24000

在employe类的genderIdentity()方法中,您使用
==
性别
男性
进行比较。此条件为false,因为
性别
男性
是不同的字符串对象(即使它们具有相同的内容/文本)。您应该使用
.equals()
来比较这两个字符串。现在,工资增加了一倍,因为
gender==“male”
gender==“female”
都没有返回true

为什么agecategory为空我写e1.agecategory时对象e1没有得到年龄类别

编写
e1.agecategory()
时,调用名为
agecategory()
的方法。此方法仅返回字符串对象,但实际上不使用它执行任何其他操作。任何地方都没有为
agegroup
变量赋值的代码(它必须看起来像
agegroup=;
,因此变量保持其默认值
null

为什么((雇员)p1.display();引发异常

这是因为,
(雇员)p1
,您尝试将
p1
对象强制转换为
employe
类型。这无法完成,因为
p1
仅定义为
人员,而不是
雇员。另一种方法可以很好地工作,因为通过编写
类employe扩展person
,每个
雇员都是已知的也要成为

这有什么用 p2人=新雇员(23人,“ekaf”,“亚特兰蒂斯”,“男性”,12000人)

这样做是有用的,因为您正在创建一个变量“代码>代码2>代码>,它可以引用任何类型的<代码>人<代码>,它不限于只引用<代码> Suffe< /Cord>对象。这在您希望能够处理任何类型的<代码>人>代码>的情况下是有用的。java仍然记得这个PAR。但是,ticular person是一个employe,因此您可以稍后将其强制转换为更具体的

employe
类型,并在其上调用
employe
-特定方法

工资怎么变成24000

在employe类的genderIdentity()方法中,您使用
==
性别
男性
进行比较。此条件为false,因为
性别
男性
是不同的字符串对象(即使它们具有相同的内容/文本)。您应该使用
.equals()
来比较这两个字符串。现在,工资增加了一倍,因为
gender==“male”
gender==“female”
都没有返回true

为什么agecategory为空我写e1.agecategory时对象e1没有得到年龄类别

编写
e1.agecategory()
时,调用名为
agecategory()
的方法。此方法仅返回字符串对象,但实际上不使用它执行任何其他操作。任何地方都没有为
agegroup
变量赋值的代码(它必须看起来像
agegroup=;
,因此变量保持其默认值
null

为什么((雇员)p1.display();引发异常

这是因为,
(雇员)p1
,您尝试将
p1
对象强制转换为
employe
类型。这无法完成,因为
p1
仅定义为
人员,而不是
雇员。另一种方法可以很好地工作,因为通过编写
类employe扩展person
,每个
雇员都是已知的也要成为

这有什么用 p2人=新雇员(23人,“ekaf”,“亚特兰蒂斯”,“男性”,12000人)


这样做是有用的,因为您正在创建一个变量“代码>代码2>代码>,它可以引用任何类型的<代码>人<代码>,它不限于只引用<代码> Suffe< /Cord>对象。这在您希望能够处理任何类型的<代码>人>代码>的情况下是有用的。java仍然记得这个PAR。但是,特定的人是一个雇员,所以你可以将其转换为更具体的

雇员
稍后键入并调用
雇员
-特定方法。

p1
是一个
,而不是
雇主
。请在发布代码时更加努力地格式化您的代码。现在到处都是,而且is不想用一个简单的例子来说明这个问题。你还应该读到你不能将一个类转换成一个子类。你可以用另一种方法,但这不会改变将要执行的代码。预期的op是什么?
p1
是一个
人,而不是一个
雇主当你发布它的时候,它会被删除。现在到处都是-这不像是一个简单的例子来说明这个问题。你还应该读到你不能将一个类转换成一个子类。你可以反过来,但这不会改变将要执行的代码。预期的操作是什么?非常感谢你的回答。它很有效帮了我很多忙:)谢谢
package inheritencelatest;
public class InheritenceLatest {

    public static void main(String[] args) {

        person p1=new person(12,"ekaf","atlanta","male");
        employe e1=new employe(23,"ekaf","atlanta","male",12000);       

         e1.ageCategory();
         e1.genderIdentity();
         e1.display();
         ((employe)p1).display();
       }

}

 class person {
      int age;
      String name;
      String Address;
      String ageGroup;
      protected String  gender;
      private String canNotBeAccesed;    //cant be accessed by subclass    

      person(int age,String name,String Address,String gender) {
          this.age=age;
          this.name=name;
          this.Address=Address;
          this.gender=gender;
      }

      String ageCategory() { 
          if(age<10)
          return("kid");
          else if(age<20 &&age>10)
          return("Teen");
          else if(age<50&&age>20)
          return("adult");
          else
          return("senior");
       }

     protected void genderIdentity() {
       if("male".equals(gender))
       System.out.println("male");
       else if(gender=="female")
       System.out.println("female");
       else 
       System.out.println("Special");
     }

 }


class employe extends person {
    double salary;

    employe(int age,String name,String Address,String gender,int salary) {
       super(age,name,Address,gender);
       this.salary=salary;
       this.name=name;
    }

    @Override
    protected  void genderIdentity() { 
       if(gender=="male")
          salary=salary;
       if(gender=="female")
          salary=1.5*salary;
       else 
          salary=2*salary;    
    }

    void display() {
       System.out.println(age +" " +name+" "+Address+" "+salary+" "+gender+ " "+ageGroup);
    }