面向对象理解

面向对象理解

刚学java的时候就知道一句话 "万物皆对象" ,那我就说说我对面向对象的理解吧!

面向对象思想

举个例子,我要买房,但是我不懂怎么买房,但是中介懂,所以我就出钱,叫中介帮我找房子,我就坐在家里等消息就行了
意思就是说,别人替我干活,而我只要出钱就行。就像Java中我想要排序一堆数字,我实现的排序数字的话太慢了,我就直接调用Java提供的Arrays类Sort方法即可排序。

面向对象编程

OOP即是面向对象编程,将现实生活中的一类事物以代码形式体现出来.。

面向对象的三大特征:封装,继承,多态。

先说说封装,封装的意义在于两个

1:隐藏对代码的实现,对外只提供我暴露的接口或方法。意思就是说,我写了一段代码,但是我不想让你知道我写了什么,但是又想给你用,所以我提供了一个路径给你,你调用这个路径就行了。

2:将类的属性和方法看做成一个整体。类是一个抽象概念,对象是一个具体的概念,一个类的属性和方法是描述一类对象的基本;一个类不能单单看这个属性或者方法就能描述或者说确定这个对象,必须属性 + 方法,所以有必要将属性和方法看做成一个整体。

继承:继承意义有两个

1:让子类加强父类的某个方法。打个比方,我做了第一版本的汽车,充电就可以开车,现在我要将我的第一版的车加强功能,加一个太阳能充电功能,我就直接在原来车的顶部加上太阳能板就行了。第一版本的车就是我的父类,第二板本就是子类,在我不改变父类的前提下在子类加强了功能。

2:代码重用:这个就不说了自己理解

多态:多态是个特别抽象的概念,不是一句两句或就能理解的,必须需要经验和能力的积累,才会对多态有更深的理解

多态分为 方法的多态对象的多态,方法多态分为重载和重写,意义在于参数统一。
对象的多态 意义 在于向上转型,还有向下转型
1:向上转型的意义—》扩展性。
2:向下转型的意义—》调用子类的特有方法,首先要有向上转型才有向下转型,不然的话我直接new对象就好了,干嘛还要向下转型呢!

用代码举个多态的例子

创建一个购物车接口

public interface ShoppingCart{
}

创建一个生活商品类

public class Life implements ShoppingCart{
 
    //towel方法
    public void towel(){
        System.out.println("towel!!");        
    }
 
    //broom方法
    public void  broom(){
        System.out.println("broom!!");
    }
}

创建一个家具

	public class Furniture implements ShoppingCart{
 
    //move方法
    public void move(){
        System.out.println("move");       
    }
 
    //keyboard方法
    public void keyboard(){
        System.out.println("Keyboard!");
    }
}

测试

public static void main(String[] args){

        //当我只买一个生活类商品时直接new  Life()类就可以啦
        Life life1 = new Life();
        life1.towel();

        /**
         * 假如你要买东西,要买各种类型的东西,定义一个ShoppingCart接口就可以买各种东西,为了扩展性
         * 假如你向上转型了你就无法对其他两个类的方法进行调用,所以需要向下转型
         */
         
        //向上转型  购买life商品
        ShoppingCart sc1 = new Life();
        sc1.towel();


        //向下转型  购买Furniture 
        Furniture furniture = (Furniture)sc1;
        furniture.move();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值