03-封装,继承,多态

封装

最小程度赋予属性,方法权限控制,能给private的绝不给protect。
例如我们有这样一个类:

public class Car {
    private int price;
    public Car(int price) {
        this.price = price;
    }
    public int getPrice() {
        return price;
    }
}

我们并不希望Car类中的price属性一旦被创建,就不允许被外部人为进行修改,但同时也希望它能够被外部访问进行读取。所以我们设定了price属性的权限修饰符为private,并且提供了一个public的getPrice()方法,这样就能完美达到我们的期望。(当然,这里并不考虑反射。。。)

继承

我们通常都需要考虑实现接口和继承父类的形式。这两种形式主要区别如下:

  • 实现接口:对功能的抽象,可多继承
  • 继承父类:对对象的抽象,单继承(无需考虑所有对象都继承自Object类)

虽然基本每个大佬对你说,都是说继承接口优先于继承父类,但是实际开发还是要看业务场景,进行斟酌。

多态

多态的实现必须满足:父类引用指向子类对象,然后调用父类引用在子类中进行了重写的方法。
例如:

public class Test {
    static class Person {
        public void say() {
            System.out.println("我是人类");
        }
    }
    static class Chinese extends Person {
        @Override
        public void say() {
            System.out.println("我是中国人");
        }
    }
    static class American extends Person {
        @Override
        public void say() {
            System.out.println("I am american");
        }
    }

    public static void main(String[] args) {
        Person person = new Chinese();
        person.say();
    }
}

但是方法的重载其实也是Java多态的一种体现。重载指的是方法名相同,而参数类型或者是参数个数不一致的几个方法,而重写则是子类对父类同个方法(方法签名一致:方法名相同,参数个数相同,参数类型也相同)有了不同的实现。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值