努力敲代码的图图 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 多尺度特征图提取和融合
  • ¥15 微信小程序:渲染收货地址时页面不显示
  • ¥20 win7 64位DirectShow提示初始化失败如何解决?
  • ¥20 小规模孤立词识别系统设计
  • ¥15 关于Java对接海康威视车牌识别一体机SDK是否需要固定外网的IP?
  • ¥15 Linux扩容时,格式化卡住了:vgdispaly查看卷组信息,没有输出
  • ¥18 关于#ubuntu#的问题:使用背景-工作职责内有七八台ubuntu系统的电脑,平时需要互相调取资料,想实现把这几台电脑用交换机组成一个局域网,来实现指定文件夹的互相调取和写入
  • ¥20 求一个简易射频信号综测仪
  • ¥15 esp8266 tally灯 接收端改为发射端
  • ¥30 Labview代码调用access 数据库,相同代码其中一个调用不出来是为什么