zoukankan      html  css  js  c++  java
  • 面向对象的总结

    /*最近一直在看面向对象方面的书籍,总算对面向对象有了一点认知,现特将面向对象进行一点总结,以备将来之用,向将面向对象的java做示例

    以下观点都代表本人的一些认知,如果有不恰当的地方,希望大家指正。谢谢

    */

    面向对象:

    提到面向对象,不能不说他的三大特向,封装,继承,多态

    1,封装,封装主要表现在,类的封装,方法的封装,以及访问修饰符的封装

    2,继承,首先为什么要继承,继承的目的是为了减少代码的重复性,可维护性,父类:所有子类共有的属性和方法。子类:子类就放自己所独有的,子类继承了父类以后,就具有子+父的共有属性和方法。说到继承,不能不说,重写,为啥要重写,重写的目的是父类的方法不适合子类的需求,谈到重写,又不能不说与重载的区别。重写是发生在父子类中,而重载是发生在一个类中,并且重载是方法名一样,传入的参数类型不一样。再有就是父类和子类都有共同的方法,调用的时候,怎么知道应该调用父类的方法还是子类的方法呢,比如,定义一个动物类,里面有个方法叫跑,定义一个狗类继承了动物类,重写了动物类方法叫地上跑,定义一个鸟类继承了动物类,重写方法叫天上飞。动物类 a=new 狗类  此时a.跑是调用的狗类的跑,同样,动物类 b = new 鸟类   b.跑 就是调用的天上飞,总之一句话,能点出什么,看引用类型也就是前面的动物类,执行什么方法,主要看后面new出来的对象,说到继承,还有一个不能不说,那就是super(),什么是super,说到super就要与关键字this来比较了,this出现在代码中,主要是用来代表自己,而super主要是代表父类,在子方法被执行的时候,第一个执行的就是super(),如果你没有写,默认会调用父类的无参的构造方法。

    3,多态,多态主要有行为的多态,对象的多态,比如cut  理发师会理解为剪头发,演员会理解为 暂停,医生会理解为开刀,说到多态,自然要想到向上造型,首先需要明白,为什么要向上造型,我的理解是这样的,避免代码的重复,比如一个方法需要传入一个参数(名字),打印出名字 +你好  如果不用向上造型的话,只能写死一个类,比如,定义好传入的参数类型为大宝,就会打印出大宝你好,如果这个时候有个小宝也需要用这个方法打印出小宝,就只能重新再写一个同样的方法,只是传入的参数类型不一样而已,这个时候向上造型就出来解决这个问题了,大宝和小宝都是人类,如果我这边传入的是人类这个类型,无论再出现二宝,三宝都可以调用这个方法了,说到向上造型,自然就想到了强制类型的转换了。强制类型转换成功与否可以与istanceof进行判断,

    说完了三大特向以后,我们来看看以下关键内容,什么是抽象类,什么是抽象方法,什么是接口

    首先,什么是抽象类,为什么要有抽象类,抽象类又叫不完整类,抽象类可以包含完整方法,也可以不包含完整方法,只要有不完整的方法,就一点是抽象类,抽象类需要通过继承去完善和重写,继承的类必须重写这个方法,否则这个子类也必须定义为抽象类。有abstract 进行修饰,并且他不能被实例化,他是模糊的定义了一个动物类,比如定义一个类,里面有个方法叫哭,子类猫继承哭这个方法,就必须重写这个方法,

    什么是接口,我还没用想好怎么去描述,但我感觉他和父类一起来说比较好理解,比如一个例子,公司有董事长,总经理,部门经理,小职员。他们有共同的属性,就是他们都是人,都要吃饭,睡觉,所以吃饭和睡觉就可以写到父类中去(比如定义一个人类),但董事长和总经理以及部门经理都有开除人的权利,小职员没有,那开除人的权利无论写到父类中还是写到子类中,都不合适,这个时候就可以写到接口中去,谁有这个权利,谁就去实现这个接口。接口是有Interface 修饰,有Implement进行实现,总结一句话,共有的放父类,部分共有的放接口

  • 相关阅读:
    LeetCode 123. Best Time to Buy and Sell Stock III (stock problem)
    精帖转载(关于stock problem)
    LeetCode 122. Best Time to Buy and Sell Stock II (stock problem)
    LeetCode 121. Best Time to Buy and Sell Stock (stock problem)
    LeetCode 120. Triangle
    基于docker 搭建Elasticsearch5.6.4 分布式集群
    从零开始构建一个centos+jdk7+tomcat7的docker镜像文件
    Harbor实现容器镜像仓库的管理和运维
    docker中制作自己的JDK+tomcat镜像
    docker镜像制作---jdk7+tomcat7基础镜像
  • 原文地址:https://www.cnblogs.com/czb529514/p/7275852.html
Copyright © 2011-2022 走看看