什么是面向对象?三大特征封装,继承,多态又是怎么回事?

本文介绍了面向过程与面向对象编程的区别,强调了面向对象的三大特性——封装、继承和多态。封装是将数据和操作数据的方法绑定在一起,隐藏内部细节;继承允许类间共享属性和行为,减少代码重复;多态则允许同一接口有不同的实现,提高代码的灵活性和扩展性。文章通过Java代码示例解释了这些概念。
摘要由CSDN通过智能技术生成

一,面向过程与面向对象

1,面向过程

面向过程:以分步骤的方式解决问题,用方法组织代码。

简单来说:就是按照日常思维编程,大家都用把大象装入冰箱来举例,我这里也就不例外了,也用这个通俗易懂的图片来给大家说明:
把大象装入冰箱分几步
1,打开冰箱门
2,把大象放入冰箱
3,关闭冰箱门
我们只需要安好步骤一步一步执行就可以完成操作

2,面向对象(Object Oriented)

面向对象:以分类的方式解决问题,用类组织代码。

面向对象:就是万事万物皆对象,每一个对象都有自己的属性和行为,我们则是通过调用这些属性和方法来实现操作
用面向对象的思维来装大象
大象作为一个对象:能吃能喝能睡,能跑能跳,当然了不能飞!
飞天大象

冰箱作为一个对象:能开门,能装东西,能关门。
小冰箱
这便是面向对象,大家看出来了什么吗?每个独享都是独立的,都有各自的属性方法,面向对象就是把现实问题抽象为对象,通过调用每个对象的属性或功能来解决问题。

二,类与对象

这个问题其实更好理解了,我依旧用举例说明:
首先类与对象是不同的!

对象是对客观事物的抽象,类是对对象的抽象。 类是一种抽象的数据类型。 它们的关系是,对象是类的实例,类是对象的模板。
可能这样说好多人还是不理解我给大家总结一下就是,类里封装的是对象的属性与方法,就好似一个模板。对象则是调用这个模板。对里边的方法与属性进行实现。所以说:类是抽象的,不占用内存,而对象是具体的,占用存储空间。
类描述了一组有相同属性和相同方法的对象。
就好比摩托车同样都是摩托车却又分为街车,仿赛,踏板,复古等。但他们都有一个共同的行为就是都能.run();

梦想之车

三,基本特征:封装,继承,多态

封装(Encapsulation)

封装是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。用户是无需知道对象内部的细节,但可以通过该对象对外的提供的接口来访问该对象。
好处:
1、良好的封装能够减少耦合。
2、类内部的结构可以自由修改。
3、可以对成员进行更精确的控制。
4、隐藏信息,实现细节。
代码实现:

public class Users {  
    /* 
     * 对属性的封装 
     * 一个人的姓名、性别、年龄都是这个人的私有属性 
     */  
    private String name ;  
    private String sex ;  
    private int age ;    
    /* 
     * get,set方法用于操作 
     */  
    public String getName() {  
        return name;  
    }  
  
    public void setName(String name) {  
        this.name = name;  
    }  
  
    public String getSex() {  
        return sex;  
    }  
  
    public void setSex(String sex) {  
        this.sex = sex;  
    }  
  
    public int getAge() {  
        return age;  
    }  
  
    public void setAge(int age) {  
        this.age = age;  
    }  
}  
public class User {
        public static void main(String[] args) {
            Users user = new Users();
            user.setAge(18);
            user.setName("张三");
            user.setSex("男");
            System.out.println("名字为" + user.getName() + 
            				   ",年龄为" + user.getAge() + 
            				   ",性别为" + user.getSex());
        }
}

继承(Inheritance)

public class C extends A{
...
}

继承允许class继承另一个class的一些通用的fields和methods。多个类存在相同的属性和行为时,定义这么多个类的属性和行为属实有些麻烦,将他们放到单独一个类中就相对比较简洁,只需继承那个定义好属性和行为那个类就行了。
好处:
1,继承提高了代码的重复性
2,继承的出现让类与类之间产生了关系,为多态提供了条件
注意:Java只支持单继承,不允许多继承,即一个子类只能有一个父类,而父类可以有多个子类。

多态(Polymorphism)

多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作。

多态的优点:
1,消除类型之间的耦合关系
2,可替换性
3,可扩充性
4,接口性
5,灵活性
6,简化性
多态存在的三个必要条件:
a.继承
b.重写
c.父类引用指向子类对象:Parent p = new Child();
多态的实现方式
方式一:重写:
详细可访问: Java 重写(Override)与重载(Overload)。
方式二:接口
1, 生活中的接口最具代表性的就是插座,例如一个三接头的插头都能接在三孔插座中,因为这个是每个国家都有各自规定的接口规则,有可能到国外就不行,那是因为国外自己定义的接口类型。

2,java中的接口类似于生活中的接口,就是一些方法特征的集合,但没有方法的实现。具体可以看 java接口 这一章节的内容。

方式三:抽象类和抽象方法

————————————————

注意注意:
面向对象编程(Object-Oriented Programming)-简称(OOP)大家注意一下这个有面试题只写这个简写别问问就是吃过亏了! ,与面向过程(Procedure Oriented )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值