A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宁少 中级黑马   /  2015-10-31 12:29  /  1234 人查看  /  19 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

众所周知,java中的面向对象的三大基本特征是:【封装】、【继承】、【多态】
通过几天的初步学习,加上C++的基础,对三大特征有了进一定的认识和了解,现将自己这几天的学习笔记做一下归纳总结:

一、封装
        对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、对象的可重用性)
        具体来说:
                1.属性: 私有 private(提供set和get方法)
                2.方法: 公开或私有public/private
                3.方法声明 --> 公开
                  方法实现 --> 隐藏
                 实现改变时,对对象的使用者没有影响。

二、继承
              共性放到父类,特性放到子类;父类 --> 子类,其实就是特殊 --> 一般
        1.关键字: extends  例如:Dog extends Animal{}
        2.java中一个类最多只能有一个直接的父类,即单继承(具有简单性、树形结构),
          C++中是单继承
          java中要实现多继承,通过接口来实现。
        3.父类中所有属性和方法都能继承给子类;父类中的私有方法不能继承给子类。
        4.
                          访问权限                     继承 
         private        本类内部                   不能继承        
           default        本类+同包              同包子类可以继承           
           protected      本类+同包+不同子包         可以继承
           public         公开                       可以继承

        5.构造对象过程
                   (1)分配空间
                   (2)递归地构造父类对象
                                a. 父类 初始化属性
                                b. 父类 构造方法
                   (3)初始化属性
                   (4)调用构造方法

        6.super  
               用法:
                   super()  调用父类的构造方法,只能出现在构造方法的第一行
                   super.方法名   super表示父类的对象,通过它去调用父类的方法
               注意:在写类的时候,一定要写默认无参的构造方法,如果一个构造方法的
                     第一句既不是this(),也不是super()时,那么就会在这里隐含的调用
                     他的父类的无参的构造方法,即隐含的有super()。

三、多态
            运行时多态。
            子类的对象放在父类的引用中,例如 Animal a=new Dog,子类对象当父类对象来使用。
        1.多态原则:
                  (1)对象类型不变
                  (2)只能用引用调用其引用类型中定义的方法
                  (3)运行时,根据对象的实际类型去找子类覆盖之后的方法
             例子:
                  有Animal类中有eat()和sleep()两个方法,sleep()中睡8小时;子类Dog中有
                  eat()方法,sleep()方法中睡6小时,还有wangwang()方法。
                  现创建Animal a=new Dog(); 不能调用a.wangwang(),调用a.sleep()输出睡6小时。
      
          2.对象的强制转换
                 格式: 引用 instanceof 类型
                        引用所指的对象是否鱼类相符,返回值boolean值。
                 用法:
                       Animal a=new Cat();
                       if(a instanceof Dog)
                       {
                          Dog d=(Dog)a;
                          d.wangwang();
                        }
                 说明:如果只有Dog d=(Dog)a;运行时错误,因为a是Cat而不是Dog (多态原则第一条)

          3.多态的灵活变换
                  (1)用于参数列表上:
                               public void m(A a){} 可以用A类的任何子类对象作为参数
                  (2)用在返回值上:
                              public A m(){}  这个方法可能返回A类的任何子类对象

19 个回复

倒序浏览
总结的很好
回复 使用道具 举报
总结一下,哈哈哈!!!!
回复 使用道具 举报
感谢分享  
回复 使用道具 举报
感谢分享
回复 使用道具 举报
总结的不错哦哦
回复 使用道具 举报
总结的很棒啊!!!
回复 使用道具 举报
总结的很棒,看来是大神,我懒得收藏直接复制到我记事本里了。有问题和复习的·时候可以多看几眼。
回复 使用道具 举报
程程程程程92 来自手机 中级黑马 2016-1-3 01:01:27
9#
不错,不错
回复 使用道具 举报
总结的很细!不错!
回复 使用道具 举报
总结的不错
回复 使用道具 举报
进来膜拜一下
回复 使用道具 举报
总结的非常好
回复 使用道具 举报
总结的不错
回复 使用道具 举报
就是这一块搞不清
回复 使用道具 举报
AOHhao 来自手机 初级黑马 2016-1-5 12:27:32
16#
看一下又复习了
回复 使用道具 举报
可以借鉴一下
回复 使用道具 举报
总结得很好
回复 使用道具 举报
很全面,很到位
回复 使用道具 举报
总结得很好,方便复习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马