zoukankan      html  css  js  c++  java
  • 面向对象四

    一、多态
    1. 多态:失误存在的多种形态
    2. 多态前提:
    a. 要有继承关系
    b. 要有方法重写
    c. 要有父类引用指向子类对象
    3. 多态中成员访问特点:
    a. 成员变量
    i. 编译看左边(父类),运行看左边(父类)
    b. 成员方法:
    i. 编译看左边(父类),运行看右边(父类) [动态绑定],编译的时候找父类的方法,运行的时候找子类的方法。
    c. 静态方法:
    i. 编译看左边(父类),运行看左边(父类)。
    ii. (静态和类相关,算不上重写,所以,访问还是左边)。
    ※只有非静态的成员方法,编译看左边,运行看右边。
    4. 多态中的向上转型和向下转型
    a. Person p =new SuperMan(); //向上转型
    b. SuperMan() sm=new (SuperMan)p;//向下转型
    5. 多态的好处和弊端
    a. 好处
    i. 提高代码的维护性(继承保证)
    ii. 提高代码的扩展性(由多态保证)
    iii. 可以当做形式参数,可以接受任意子类对象
    b. 弊端:
    i. 不能使用子类的特有属性和行为
    二、抽象类概述及其特点
    1. 抽象类概述
    a. 抽象就是抽出像的部分
    2. 抽象类的特点
    a. 抽象类和抽象方法必须用abstract关键字修饰
    i. 抽象类:abstract class 类名{}
    ii. 抽象方法:public abstract void eat();
    b. 抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者接口。
    c. 抽象类不能实例化
    i. 按照多台的方式,由具体的子类实例化。其实这也是堕胎的一种,抽象类多态。
    d. 抽象类的子类
    i. 要么是抽象类
    ii. 要么重写抽象类中的所有抽象方法。
     
    3. 抽象类中的成员特点:
    a. 成员变量:既可以是变量,也可以是常量。abstract修饰符不能修饰成员变量
    b. 构造方法:有
    i. 用于子类访问父类数据的初始化。
    c. 成员方法:既可以抽象的,也可以是非抽象的。
    d. 和abstract不能共存的修饰符
    i. static:通过类名调用抽象方法是没哟意义的。
    ii. final:abstract强制子类重写,final 不允许子类重写,相互矛盾。
    iii. private:只能在本类中访问,子类无法访问该方法,则不能重写。
    三、接口的概述及其特点:
    1. 接口概述
    a. 从狭义的角度讲就是指java中的interface
    b. 从广义的角度讲对外提供规则的都是接口
    2. 接口的特点:
    a. 接口用关键字interface表示
    i. interface 接口名{}
    b. 类实现接口用implements表示
    i. class 类名 implements 接口名{}
    c. 接口不能实例化
    i. 可以按照多态的方式实例化。
    d. 接口的子类
    i. 可以是抽象类,但是意义不大
    ii. 可以使具体类,要重写接口中的所有抽象方法。
    3. 接口中的成员变量
    a. 只能是常量,并且是静态的公共的。
    i. 默认修饰符:public static final,建议手动给出该修饰符、
    b. 构造方法:接口没有构造方法
    c. 成员方法:只能是抽象方法
    i. 默认修饰符:public abstract,建议手动给出该修饰符。
    四、类与类、类与接口、接口与接口的关系
    1. 类与类:
    a. 继承关系,只能单继承,可以多层继承。
    2. 类与接口
    a. 实现关系,可以单实现,也可以多实现。
    b. 并且还可以在继承一个类的同时实现多个接口。
    3. 接口与接口
    a. 继承关系,可以单继承,也可以多继承。
    五、抽象类和接口的区别:
    1. 成员区别:
    a. 抽象类:
    i. 成员变量:可以变量、也可以常量
    ii. 构造方法:有
    iii. 成员方法:可以抽象,也可以非抽象
    b. 接口:
    i. 成员变量:只能是常量
    ii. 成员方法:只能是抽象方法。
    2. 关系区别:
    a. 类与类:
    i. 继承,单继承
    b. 类与接口:
    i. 实现,单实现,多实现。
    c. 接口与接口:
    i. 继承,单继承,多继承。
    3. 设计理念区别:
    a. 抽象类:被继承体现的是 “is a”的关系,抽象类中定义的是该继承体系的共性功能
    b. 接口: 被实现体现的是“like a”的关系,接口中定义的是该继承体系的扩展功能。
  • 相关阅读:
    Java IO流
    博客园禁止pc端以及手机端选中复制粘贴
    eclipse debug模式出现 source not found
    Winform之跨线程访问控件(在进度条上显示字体)
    WPF中DataGrid的ComboBox的简单绑定方式(绝对简单)
    WPF制作QQ列表(仿qq列表特效)
    WPF柱状图(支持数据库动态更新)之组件的数据动态化
    WPF柱状图(支持数据库动态更新)
    WPF仿微软事件和属性窗体,效果更炫!
    DataGrid缓冲加载数据
  • 原文地址:https://www.cnblogs.com/snail0404/p/10453748.html
Copyright © 2011-2022 走看看