java三大基础特征-封装、继承、多态

还是一张图轻松搞定

基本特征                           

定义

具体实现方式

 优势

封装

隐藏实现细节,将属性私有化,对外提供公共的访问接口

属性私有化、添加公有的setter、getter方法

增加了数据访问权限,增强代码的可维护性

继承

从一个已有的类派生出新的类,子类具有父类的一般特性,以及自身特殊的特性

 继承需要符合的关系:is-a                    

1、实现抽象(抽出像的部分)

2、增强代码的可复用性                                                                                    

多态

 向同一父类的不同子类对象发送同一条消息,行为不同

通过Java接口/继承来定义统一的实现接口;通过方法重写为不同的实现类/子类定义不同的操作

 

增强代码的可扩展性、可维护性


继承:当多个类中出现相同的成员,可以将多个相同的成员提取到一个独立的类中,继承此类即可。继承需要符合的关系:is-a,父类更通用、子类更具体

    语法:class Zi extends Fu{}

                         Zi:子类;派生类

                         Fu:父类,基类

好处:   1.提高了代码的重用性

          2.降低代码的维护成本

          3.使类与类之间更加强大,是多态的前提

弊端:1.类的耦合性提高了

          2.开发原则:高内聚低耦合

特点:1.单继承:一个子类只能继承一个父类,一个父类可以被多个子类继承

          2.多层继承:子继父,父继祖

继承中的关系:

A.成员变量关系:如果子类与父类出现同名变量,使用子类的,如果想用父类的同名变量,super.变量名;不重名该用谁用谁

B.成员方法关系:如果子类与父类出现同名方法,使用子类的,如果想用父类的同名方法,super.方法名;不重名该用谁用谁

C.构造方法:不存在继承关系!!!如果没有显式调用父类的构造方法,JVM将自动调用父类的无参构造方法。

原因是:子类继承父类的构造方法,所以当初始化子类对象时,要先完成父类的初始化

一般有参调有参,并且

!!!注意:只要在类中有有参构造方法,通常在类中再提供一个无参构造方法

 如果父类中没有无参构造方法:子类无参构造函数和有参构造函数-->都手动调用父类的有参构造方法  

例如:

Zi(){

//两种调用方法,super()  和 this() 都必须是第一条语句,只能用一个

super(100);//子类直接调用父类的有参构造函数

this(100);//子类无参构造先调用本类的有参构造,本类的有参构造也会手动调用父类的有参构造

}

Zi(int a){

 super(a);//子类有参构造手动调用父类的有参构造,

 this.a=a;

}    

super关键字: super();注意!!!不写.

 super关键字  父类引用

 super.成员变量名;

 super.成员方法名();

 super();//调用父类的构造方法  必须是构造其中的第一条语句

 this();//调用本类的构造方法  必须是构造其中的第一条语句

this关键字:

局部变量与成员变量重名,局部变量会把成员变量隐藏,使用this关键字访问成员变量。this指代调用对象,super指代父类对象。

 私有化成员:private关键字修饰的成员变量和成员变量没有继承,子类不能直接调用,被private修饰的成员只能在本类中被访问; (即封装)

调用方法:1.子类继承父类中提供setter和getter方法;

                2. 调用父类的有参构造方法可以对父类的私有化成员进行赋值。

多态:具有表现多种形态的能力的特征,向同一父类的不同子类对象发送同一条消息,行为不同。

多态创建对象:

        1.有继承关系

        2.有方法的重写

        3.父类引用指向子类对象(父像子)(允许将子类类型的指针赋值给父类类型指针)

成员特点:

        1.成员变量:编译看父类,运行看父类

        2.成员方法:编译看父类,运行看子类

        3.静态方法:编译看父类,运行看子类

4.构造方法:没有被继承,更谈不上重写

多态中的转型:

    1. 基本数据类型的转型  向上转型就是把子类转换成父类(自动转换),向上转型时无法调用子类独有方法

    2.引用数据类型转型  转型(因为想使用子类特有的功能)(强制类型转换)

默认:多态创建对象   父类引用指向(赋值)子类对象

强制转型:将父类引用转为子类对象  IronMan i=(IronMan)p;

多态好处:

        1.提高了代码的维护性(继承是多态的前提)

        2.提高了代码的扩展性

多态弊端:不能访问子类特点有方法  

解决方法:多态中的强转,将父类引用转为子类对象

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值