java封装/继承简单实例

定义三个类:课程类(创建子类)、教室类(提供子类)、老师类(主类)
创建相关子类,实现不同的老师,可以在不同的教室上不同的课程

 一、项目目录

operation下的三个类是父类,classRoom包下的是ClassRoom类的子类,projects包下的类是Project类的子类。

二、项目代码 

教室类

什么是封装:private修饰的属性是类的私有属性,如果别的类需要使用此私有属性,就需要使用它的get或者set方法,这就是将私有属性封装,提供对外开放的方法,提高数据安全性

public class ClassRoom {
    //定义属性
    private String name;
    //空构造方法
    public ClassRoom() {
    }
    //有参构造方法
    public ClassRoom(String name) {
        this.name = name;
    }
    //属性的getter/setter方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void say(){
        System.out.println("我是ClassRoom类中的方法");
    }
}

 教室类的子类,一个重写了父类的方法,一个什么都没写没写

public class ClassOne extends ClassRoom {
    @Override
    public void say() {
        System.out.println("我是ClassOne类中的方法");
    }
}
public class ClassTwo extends ClassRoom {

}

课程类,依旧是一个姓名私有属性

public class Project{
    private String name;

    public Project() {
    }

    public Project(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

 课程类的子类

public class English extends Project {
  
}
public class Math extends Project {
  
}

教师类

什么是继承:所有的子类里什么都没写,但是依旧可以调用setName方法,是因为它的父类有这个方法,也就是说子类继承父类后,父类的属性和方法子类都可以使用

public class Teacher{
    private String name;

    public void teach(English eng, ClassOne croom){
        System.out.println(this.getName() + "教" + croom.getName() + "班的" + eng.getName());
    }
    public void teach(Math eng, ClassOne croom){
        System.out.println(this.getName() + "教" + croom.getName() + "班的" + eng.getName());
    }
    public void teach(English eng, ClassTwo croom){
        System.out.println(this.getName() + "教" + croom.getName() + "班的" + eng.getName());
    }
    public void teach(Math eng, ClassTwo croom){
        System.out.println(this.getName() + "教" + croom.getName() + "班的" + eng.getName());
    }

    public Teacher() {
    }

    public Teacher(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static void main(String[] args) {
        Teacher th = new Teacher();
        th.setName("教师1");
        Math ma = new Math();
        ma.setName("数学");
        ClassOne one = new ClassOne();
        one.setName("一");
        th.teach(ma, one);
    }
}
Teacher类中有四个方法,他们方法名相同,方法的参数列表不同,这个是方法的重载 
重载:同一个类中,方法名相同,参数列表不同。

重写:不同类,拥有继承/实现关系,方法名相同,参数列表相同,代码块不同,分别调用ClassOne的say方法和ClassTwo的say方法测试一下
        one.say();
        new ClassTwo().say();

 

 以上简单的实例简单明了的演示封装和继承

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尢词

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值