面向对象的三大基本特征

本文详细介绍了Java编程中的三大特性——封装、继承和多态。封装通过设置访问权限保护数据,减少耦合,便于维护和提高安全性。继承允许子类继承父类的属性和方法,简化代码并增强重用性。多态则实现了运行时方法的动态绑定,确保在类继承和派生时调用的正确性。通过实例展示了这三大特性的应用及其重要性。
摘要由CSDN通过智能技术生成

一、封装

(一)基本概念

封装即把信息隐藏,把信息包装成一个整体,用整体的眼光看待问题

(二)四种访问控制级别

  • public:项目中所有类都可以访问
  • protected : 子类下可以访问,同包(除了不同包且不同子类,其他情况都能访问)
  • 缺省/默认 : 同包
  • private : 同类

(三)作用

1.良好的封装能够减少耦合,调用者只需根据暴露在外的方法修改属性的值,在set方法时还可以添加一些范围的校验

2.易于维护,因为封装后就是内部结构,没有暴露在外部,可以自由修改,灵活控制读和写的访问级别

3.隐藏实现细节,隐藏信息,提高代码的安全性

(四)使用方法

创建一个类,将属性的访问级别设置为私有(private),把对外界提供设置属性的方法设置为public。

 

快速设置Set和Get方法,和构造方法,IDEA的快捷键为 Alt+Insert(台式机)  Fn+Alt+Del/Ins(笔记本,我的是这样)  

扩展:当使用Maven创建项目时,编写我们的实体类可以使用IDEA的Lombok插件(也就是小辣椒),在Maven中导入依赖,之后在实体类中加入@DATA注解,就可以直接使用Set与Get方法。

 

二、继承

(一)基本概念

让某个类型的对象获得另一个类型的对象的属性和方法。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

(二)作用

简化代码,提高代码的重用性,便于功能的拓展。

(三)注意事项

1.在Java中一个子类只能继承一个父类,如果想要实现多继承,可以使用多级继承。

2.因为所有的类最终的父辈类都是Objcet类,所以所有类都能使用其Objcet类中声明的方法和属性。

3.子类创建对象时,会先初始化父类属性,然后执行父类的构造方法,再初始化子类的属性,最后才执行子类的无参构造(多级继承时以此类推)

(四)使用方式

关键字 extends

super.属性可以访问父类的属性

继承后子类可以对父类的方法进行重写,但不能重写父类的构造方法,只能通过super()的方式调用父类的构造方法,且必须放在第一行才行。

子类对象调用重写方法时会遵循“就近原则”的方式

三、多态

(一)基本概念

在这个运行环境中,引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定。Java虚拟机会根据引用变量指向的对象来调用该对象的指定方法,这种运行机制被称为动态绑定。

(二)作用

多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。

(三)多态的使用

多态存在的条件:

        1.继承

        2.重写

        3.父类引用指向子类对象。

public class extend {
    public static void main(String[] args) {
        Animal a = new Dog();
        Animal b = new Cat();
        a.say();
        b.say();
    }
}

abstract class Animal {
    abstract void say();
}
//猫
class Cat extends Animal{
    public String name="小黑";
    public void say(){
        System.out.println("喵喵喵");
    }
}
//狗
class Dog extends Animal{
    public String name="小白";
    public void say(){
        System.out.println("汪汪汪");
    }
}

 输出结果为:

汪汪汪

喵喵喵

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值