黑马程序员技术交流社区

标题: 面向对象——第四天 [打印本页]

作者: xguobin    时间: 2016-9-27 13:03
标题: 面向对象——第四天
第四天

要知道什么是多态
事物存在的多种形态

*掌握多态的前提条件是什么
要有继承关系,方法重写,父类引用指向子类对象

*掌握多态间子父类之间成员变量,成员方法,静态方法的访问特点
成员变量:编译看左边(父类),运行看左边(父类)
成员方法:编译看左边(父类),运行看右边(子类)
静态方法:编译看左边(父类),运行看左边(父类)

理解向上转型
向上转型(自动类型提升):父类名 xx = new 子类名();父类引用指向子类对象
*掌握向下转型的格式
向下转型(强制类型转换):子类名 xx = (父类)xx;前提:父类引用指向子类对象
                          Fu f = new Zi();Zi z = new Zi();z = (Zi)f;

理解ClassCastException异常
如果把狗强转成猫就会出现类型转换异常,Cat c = new Dog();狗是一只猫,这是错误的

要知道什么是抽象类
抽象就是看不懂的,不可描述,不完整的类

要知道什么是抽象方法
被abstract修饰的方法,没有方法体

*理解抽象类的特点
1、抽象类和抽象方法必须用abstract关键字修饰;2、抽象类不一定有抽象方法,有抽象方

法的类一定是抽象类或接口;

*理解抽象类的成员特点
成员变量:可以是变量或常量,abstract不可以修饰成员变量
构造方法:有。(用于子类访问父类数据的初始化)
成员方法:可以是抽象或非抽象

*掌握abstract关键字不能和哪些关键字共存
private:不让子类访问;被abstract修饰的是为了让子类看到并强制重写,相矛盾
static:可以用类名.调用,但是类名调用抽象方法是没有意义的;被abstract修饰的方法

没有方法体。
final:不让子类重写;被abstract修饰的方法强制子类重写,相矛盾。

要知道什么是接口
狭义:指java中的interface;广义:对外提供规则的都是接口。

*掌握接口的定义格式
接口用关键字interface表示:interface 接口名{ }
类实现接口用implements表示:class 类名 implements 接口名{ }

*理解接口的特点
接口不能实例化,按照多态的方式来实例(由具体的子类实例化)
接口的子类 是具体类,要重写接口中的所有抽象方法;也可以是抽象类,但是意义不大。

*理解接口的成员特点
成员变量:只能是常量,并且是静态的并公共的(默认修饰符:public static final)。
构造方法:接口没有构造方法。
成员方法:只能是抽象方法(默认修饰符:public abstract)。

理解类与类,类与接口,接口与接口之间的关系
a:类与类:继承关系,只能单继承,可以多层继承。

b:类与接口:
实现关系,可以单实现,也可以多实现。
并且还可以在继承一个类的同时实现多个接口。
c:接口与接口:
继承关系,可以单继承,也可以多继承。

*掌握抽象类和接口的区别
成员变量:抽象类可以是变量或常量;接口只可以常量
成员方法:抽象类可以抽象或非抽象;接口只可以抽象
构造方法:抽象类有;接口无
*掌握抽象类和接口的应用场景(设计理念方向)
抽象类:被继承体现的是"is a "的关系。抽象类中定义的是该继承体系的共性功能
接口:被实现体现的是"like a "或“有”的关系。该继承体系的扩展功能
对事物本质的抽象用抽象类,对事物功能的扩展用接口
作者: xguobin    时间: 2016-9-27 13:06
如有不全或不正确,请指正哈~~
作者: bopeia    时间: 2016-9-27 13:15
。。。。。。。。。。。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2