risc-v中文社区

 找回密码
 立即注册
查看: 1126|回复: 1

[原创] java for risc-v系列知识讲座(9)--- 抽象类

[复制链接]

20

主题

23

帖子

96

积分

注册会员

Rank: 2

积分
96
发表于 2021-8-3 21:55:51 | 显示全部楼层 |阅读模式
public class AbstractTest {
    public static void main(String[] args)
    {
        Person2 pstu = new Student2("zs",10,95);
        Person2 pworker = new Worker2("lisi",25,3000.0f);
        pstu.say();
        pworker.say();
    }
}
abstract class Person2 {
    String name;
    int age;
    //抽象类不能用来直接实例化对象  比如不能直接Person2 p = new Persion2(...)
    public Person2(String name,int age){
        this.name = name;
        this.age = age;
    }
    abstract void say();
}
class Student2 extends Person2 {
    float score;
    public Student2(String name,int age,float score) {
        super(name,age);
        this.score = score;
    }
    @Override
    void say() {
        System.out.println("I am student --->" + name + " : " + age + " : score="+ score);
    }
}
class Worker2 extends Person2 {
    float salary;
    public Worker2(String name,int age,float salary) {
        super(name,age);
        this.salary = salary;
    }
    @Override
    void say() {
        System.out.println("I am worker --->" + name + " : " + age + " : salary="+ salary);
    }
}
显示如下:
I am student --->zs : 10 : score=95.0
I am worker --->lisi : 25 : salary=3000.0

回复

使用道具 举报

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
发表于 2021-8-3 22:01:33 | 显示全部楼层
abstract方法其实可以理解为公共的接口,所有子类都需要具有的接口。
另外,子类在构造的时候,如果需要调用父的构造函数,也是必须要在第一句中super(...)对父类的构造函数进行调用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-4-27 18:03 , Processed in 0.019121 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表