努力敲代码的图图 2022-10-08 17:15 采纳率: 75%
浏览 49
已结题

关于多态的问题,如何解决?

有同学可以帮我看一下我写的是否正确嘛

题目:完成一个多态作为参数的使用的demo

自由发挥,做出demo,注意两种方式

1,子类重写父类抽象方法

2,子类自带的方法(强制转换)

代码:package com.dmd;

public class Person {
public String name;
public int age;

public Person(String name,int age){
    this.name=name;
    this.age=age;
}

public Person(){

}


public void getInfo(){
    System.out.println(name);
    System.out.println(age);
}

}

package com.dmd;

public class Student extends Person{
String school;

public Student(String name,int age,String school){
    super(name,age);
    this.school=school;
}


public Student(){
}


public void study() {
    System.out.println("好好学习,天天向上!");
}


public void getInfo() {
    super.getInfo();
    System.out.println(school);

}



public static void main(String[] args) {
    Person p=new Person();
    p.name="person";
    p.age=40;
    p.getInfo();

    Student s=new Student();
    s.name="student";
    s.age=20;
    s.school="清华大学";
    s.getInfo();
    s.study();

}

}

  • 写回答

1条回答 默认 最新

  • 心寒丶 全栈领域优质创作者 2022-10-08 17:34
    关注
     
    public abstract class Person {
    public String name;
    public int age;
    
    public Person(String name,int age){
        this.name=name;
        this.age=age;
    }
     
    public Person(){
    } 
     
    public void getInfo(){
        System.out.println(name);
        System.out.println(age);
    }
    public abstract void eat();
    }
    
    
    package a;
    
    public class Student extends Person{
    String school;
    
    public Student(String name,int age,String school){
        super(name,age);
        this.school=school;
    }
     
     
    public Student(){
    }
     
     
    public void study() {
        System.out.println("好好学习,天天向上!");
    }
     
     
    public void getInfo() {
        super.getInfo();
        System.out.println(school);
     
    }
     
     
     
    public static void main(String[] args) {
        Person p=new Student();
        p.name="person";
        p.age=40;
        p.getInfo();
         Student s= (Student)p;
        s.name="student";
        s.age=20;
        s.school="清华大学";
        s.getInfo();
        s.study();
     
    }
    
    
    @Override
    public void eat() {
        // TODO Auto-generated method stub
        System.out.println("学生吃饭");
    }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月16日
  • 已采纳回答 10月8日
  • 创建了问题 10月8日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么