Java面对对象三大特点,继承,封装,多态

继承

  •    什么是继承?

                   在现有的类的继承上定义一个新的类,现有的类称为父类,新的类称为子类,子类会自动拥有父类的内容。

                  extends 关键字:表示继承。

  •     继承格式

               class  类名  extends  父类名{                                            }

                       和普通类多了一个   extends  父类名

  •    继承的好处

                  子类会自动拥有父类的内容,提高代码复用性。

  •   继承的特点 

                Java中只支持单继承

                一个类可以有多个子类

               支持多层继承

  •    注意

               子父类没有相对的概念

           一个类没有继承别的类的时候默认继承Object

 

  •    子类不能继承父类的内容

               并不是子类能够继承父类的所有东西,以下内容子类不能继承:

                             被private修饰的

                            构造方法不能继承

 

  • 继承后的特点

             成员变量

                    自己有就用自己的,自己没有就用父类的(就近原则

                    当子父类出现了同名变量时,子类需要访问父类中非私有的成员变量时,需要使用到super关键字,

                    格式    

                                  super.父类变量名

             成员方法

                      成员方法不重名

                                 如果子类父类中出现不重名的成员方法,这时的调用是没有影响的。对象调用方法时,会先在子类中查找有没有对 应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法。

                    成员方法重名----重写

                                 方法重写:子类出现与父类方法一样时(返回值类型,方法名,参数列表都一样)会出现覆盖效果,也称为重写

                  

                  方法重写注意事项:

                               两同两小一大

                                        两同:  参数列表相同,方法名相同。

                                        两小: 返回值要比被重写方法返回值要小或者一样,(重写方法的返回值要是被重写方法返回值的子类)

                                                    重写方法抛出的异常要比被重写方法抛出的异常要小或者是一样

                                        一大:重写方法的权限修饰符要大于或者大于被重写方法的权限修饰符

              继承后的特点------构造方法

                                构造方法是不能继承的

                                构造方法是用来初始化成员变量的,所以子类的构造方法中默认有一个super() ,表示调用父类构造方法

             继承后标准构造方法写法:

                             1. 子类的无参调用父类的无参构造

                             2. 子类的有参构造调用父类的有参构造,自己的成员变量自己赋值

           

                 super和this

                             super :代表父类的存储空间标识(可以理解为父亲的引用)。

                             this :代表当前对象的引用(谁调用就代表谁)

                            this.成员变量     ‐‐    本类的    

                            super.成员变量     ‐‐    父类的     

                            this.成员方法名()   ‐‐    本类的      

                            super.成员方法名()   ‐‐    父类的

     

                    访问构造方法

                              this(...)     ‐‐    本类的构造方法    

                             super(...)    ‐‐    父类的构造方法

                            子类的每个构造方法中均有默认的super(),调用父类的空参构造。手动调用父类构造 会覆盖默认的super()。

                           super() 和 this() 都必须是在构造方法的第一行,所以不能同时出现。

                java继承的特点

                         Java只支持单继承,不支持多继承

                         Java支持多层继承(一个类可以有多个子类)

                          顶层父类是Object一个类没有继承别的类默认继承Object          


  封装

                什么是封装:把私有的东西隐藏起来,不让外界直接访问。

                 封装的原则(步骤):

                           将隐私的内容私有

                          提供get和set方法让外界访问

              封装的格式:

                          private  数据类型  变量名 ;

              封装的好处:

                      提高代码的安全性

                              


多态

        多态定义:

                  同一行为的不同体现。

          多态前提:

                   类要有继承或者实现的关系

                   要有方法的重写,如果没有重写则动态没意义

                   父类引用指向子类对象(格式)

 

           多态的具体格式:

                   父类类型 变量名 = new 子类类型();

                  父类类型:指子类对象继承的父类类型,或者实现的父接口类型。

                  当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,执行的是子类重写 后方法

                  编译看子类,运行看父类

                多态的好处:

                          在创建方法时参数类型可以选择父类类型,掉用方法时可以传入子类对象,有利于扩展。

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值