java 三大基本特征

java 三大基本特征java中的面向对象的三大基本特征是:【封装】、【继承】、【多态】封装:对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、对象的可重用性)属性(bean、pojo):私有的private,有set和get方法方法:公开或私有,public/private方法声明和实现(inte

大家好,欢迎来到IT知识分享网。java 三大基本特征

java中的面向对象的三大基本特征是:【封装】、【继承】、【多态】

封装:对象要有一个明确的边界;边界的划分(对象各司其职、对象的粒度、对象的可重用性)

  • 属性(bean、pojo):私有的private,有set和get方法
  • 方法:公开或私有 ,public/private
  • 方法声明和实现(interface,implements)

继承:共性放到父类,特性放到子类;父类 –> 子类 –> 一般

  • 关键字: extends
  • java中一个类最多只能有一个直接的父类,即单继承(具有简单性、树形结构)             
  • tip:java中要实现多继承,通过接口来实现。
  • 父类中所有属性和方法都能继承给子类;父类中的私有方法不能继承给子类。
  • java中的访问修饰符
    访问修饰符 访问权限 继承
    private 本类 不能继承
    default 本类+同包 同包子类可以继承
    protected 本类+同包+不同子包 可以继承
    public 公开 可以继承

 

    • 构造对象过程

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

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

 

多态:运行时多态(子类的对象放在父类的引用中,例如 Animal a=new Dog,子类对象当父类对象来使用。)

 

      • 多态原则:
               (1)对象类型不变
               (2)只能用引用调用其引用类型中定义的方法
               (3)运行时,根据对象的实际类型去找子类覆盖之后的方法
                     例子:
                          有Animal类中有eat()和sleep()两个方法,sleep()中睡8小时;子类Dog中有
                          eat()方法,sleep()方法中睡6小时,还有wangwang()方法。
                          现创建Animal a=new Dog(); 不能调用a.wangwang(),调用a.sleep()输出睡6小时。
      • 对象的强制转换 :
                           格式: 引用 instanceof 类型
                                引用所指的对象是否与类相符,返回值boolean值。
                         用法:
                               Animal a=new Cat();
                               if(a instanceof Dog)
                               {
                                  Dog d=(Dog)a;
                                  d.wangwang();
                                }
                         说明:如果只有Dog d=(Dog)a;运行时错误,因为a是Cat而不是Dog (多态原则第一条)
      • 多态的灵活变换
               (1)用于参数列表上:
                                       public void m(A a){} 可以用A类的任何子类对象作为参数
                (2)用在返回值上:
                                      public A m(){}  这个方法可能返回A类的任何子类对象

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/27939.html

(0)
上一篇 2023-11-30 21:45
下一篇 2023-12-01 10:00

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信