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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

面向对象---多态
1、什么是多态
     对象在不同时刻表现出来的不同时态。
     针对引用类型:
                    编译期间状态
                    运行期间状态
          Person  p = new  Person();
    多态的前提条件:
                         A、要有继承关系或者实现关系
                         B、要有方法重写。
                         C、要有父类引用指向子类对象。

2. 多态成员特点:方法有重写,而变量没有。
                    A、成员变量
                              编译看左边,运行看左边。
                     B、成员方法
                              编译看左边,运行看右边。
多态中成员方法的特点:编译看左边,运行看右边,产生的原因:方法有重写
但是看情况:静态方法没有重写。
   
3.多态的弊端和好处
弊端:父类引用不能使用子类特有功能(方法)
       基本类型:隐式转换(小到大),强制转换(大到小)
       引用类型:向上转型(小到大),向下转型(大到小)
好处:为了提高代码的扩展性和可维护性

定义工具类:强调工具类不可修改,但必要时可以修改。

抽象类和接口
一切源于不知道某些功能要干什么
1、抽象方法:没有方法体的方法叫做抽象方法。
2、抽象类:如果一个类中含有抽象方法,这个类就可以被定义为抽象类,会被abstract修饰
3、抽象类的特点:
     A、抽象类和抽象方法用关键字abstract修饰
     B、有抽象方法的类一定是抽象类(或接口),但是抽象类中不一定有抽象方法。
     C、抽象类不能被实例化。---通过子类对象进行实例化
     D、如果一个类继承抽象类,要么这个类本身是抽象类,要么这个类重写父类所有方法。
4、好处:
          作用:强制要求子类重写父类所有功能。
5、抽象类的成员特点:
     A、成员变量:可以有成员变量,也可以有常量
     B、成员方法:可以有抽象方法,也可以有非抽象方法。
                         抽象方法是为了要求子类做某些事情。
                         非抽象方法是为了提高代码的复用性,被子类继承。
     C、构造方法:有构造方法。
          既然不能实例化,那么构造方法有什么用?
          可以用于子类访问父类数据前,对父类数据进行初始化。
接口:
     接口可以看成是一个特殊的抽象类,接口不是类。
abstract  不能和final、  static、  private关键字共存。
接口的特点:
     A、接口不能被实例化
     B、接口中的方法,要么被子类实现,要么子类也是抽象类。
          接口可以多继承,类只支持单继承。
2、抽象类和接口的区别:
     1、抽象类中的方法不全是抽象方法,而接口中的方法都是抽象方法。
     2、抽象类有构造方法,而接口没有构造方法。
接口中的成员特点:
     成员变量:接口中只有常量
                    因为接口中的成员变量默认修饰符:public static final修饰
                    推荐给出修饰符

     成员方法:接口中的方法都是抽象方法
                    因为接口中的成员方法都有默认修饰符,推荐给出
                              public abstract修饰

     构造方法:接口没有构造方法。
                    任何类如果没有继承父类,那么这个类就继承自object类
接口和接口之间的关系
     接口可以多继承,因为接口的方法都是抽象方法,不会出现调用不明确。
A、什么时候定义类,什么时候定义接口,什么时候定义抽象类

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马