黑马程序员技术交流社区
标题:
面向对象——第四天
[打印本页]
作者:
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