抽象类,多态

一.抽象类

1.概述

        在java中,一个没有方法体的方法定义为抽象方法,而该类中如果有抽象方法,则该类必须定义为抽象类。

例如:public   abstract  void   test();  

 2.特点

        ①抽象类和抽象方法必须用abstract修饰

               例如: public   abstract   class   类名{}

                           public   abstract   void   eat();

        ②抽象类中可以没有抽象方法,但有抽象方法的类一定是抽象类;

        ③抽象类不能被实例化(不能创建对象)

               但可以参照多态的方式,通过子类对象实例化,这叫抽象类多态。

例如:Animal   a   =   new   Cat;                        

         ④抽象类的子类

                要么重写抽象类中的所有抽象方法

                要么创建的子类本身就为抽象类

3.成员特点

        ①成员变量

               可以是变量

               也可以是常量

        ②构造方法

                有构造方法,但不能被实例化

                作用:用子类访问父类数据的初始化

        ③成员方法

        可以有抽象方法:限定子类必须完成某些动作。抽象方法不能用private、final、static修饰。

        也可以有非抽象方法:提高代码复用性(继承)。

二.多态(java三大特点之一)

1.概述

        同一个对象,在不同时刻表现出来的不同形态,称为多态。

        举例:猫

        可以说猫是猫:Cat   cat  =  new   Cat();

        也可以说猫是动物:Animal   cat   =   new   Cat();

2.多态的前提和体现

        ①有继承或实现关系

        ②有方法重写

        ③有父类引用指向子类对象

3.多态中成员访问特点

        ①成员变量:编译看左边,运行也看左边

        ②成员方法:编译看左边,运行看右边

        原因:成员方法有重写,而成员变量没有

4.多态的好处和弊端

        ①好处:提高了程序的扩展性

                具体体现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作。

        ②弊端:不能使用子类的特有功能

5.多态中的转型

        ①向上转型

                从子到父

                父类引用指向子类对象。

                举例:Animal   a   =   new   Cat();

        ②向下转型(用于解决多态的弊端)

                从父到子

                父类引用转为子类对象。

                举例:Cat   c   =   (Cat) a;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郭天宇 abfore

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值