2021-01-14

本文详细介绍了Java中的多态概念,包括成员变量和方法的访问特点,以及多态带来的好处和弊端。探讨了抽象类的特性,如抽象方法、构造方法的作用,并阐述了抽象类如何通过子类实例化。此外,还讲解了接口的使用,接口与类之间的关系,以及抽象类与接口的区别。内部类的概念和访问特点也进行了说明,包括成员内部类和局部内部类的应用。
摘要由CSDN通过智能技术生成

第2节 多态
1.1 多态
同一个对象,在不同时刻表现出来的不同形态
多态的前提和体现:
有继承/实现关系;
有方法重写;
有父类引用指向子类对象。
1.2 多态中成员变量访问特点
成员变量:编译看左边,执行看左边;
成员方法:编译看左边,执行看右边。
为什么成员变量和成员方法的访问不一样呢?
因为成员方法有重写,而成员变量没有。
1.3 多态的好处与弊端
好处:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作;
弊端:不能使用子类的特有功能。
1.4 多态中的转型
向上转型:Animal animal = new Dog();
由子到父;
父类引用指向子类对象。
向下转型:Dog dog = (Dog)animal;
由父到子;
父类引用转为子类对象。
1.7 抽象类特点
抽象类和抽样方法必须使用abstract关键字修饰;
抽样类中不一定有抽样方法,但有抽样方法的一定是抽样类;
抽象类不能直接实例化
抽象类如何实例化呢?参考多态的形式,通过子类对象实例化,这叫抽象多态。
抽象类的子类
要么重写抽象类中所有的抽象方法;
要么本身就是抽象类。
1.8 抽象类的成员特点
成员变量
可以是变量
也可以是常量
构造方法
有构造方法,但不能实例化
那么,构造方法的作用是什么呢?用于子类访问父类数据的初始化
成员方法
可以有抽象方法:限定子类必须完成某些操作;
也可以有非抽象方法:提高代码复用性。
第3节 接口
1.2 接口的特点
接口用关键字interface修饰;
类实现接口用implements表示;
接口不能实例化
接口如何实例化呢?参考多态的形式,通过实现类对象实例化,这叫接口多态;
多态的形式:具体类多态、抽象类多态和接口多态;
多态的前提:有继承或实现关系;有父(类/接口)引用指向(子/实现)对象;
接口的实例化
要么重写接口中所有抽象方法;
要么是抽象类。
1.4 类和接口的关系
类和类的关系
继承关系,只能单继承,但是可以多层继承。
类和接口的关系
实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口。
接口和接口的关系
继承关系,可以单继承,也可以多继承。
1.5 抽象类和接口的区别
成员区别
抽象类:变量,常量;有构造方法,有抽象方法,也可以有非抽象方法;
接口:常量;抽象方法。
关系区别
类与类:继承,单继承;
类与接口:实现,可以单实现,也可以多实现;
接口与接口:继承,单继承,多继承。
设计理念区别
抽象类:对类抽象,包括属性,行为;
接口:对行为抽象,主要是行为。
强调一下:抽象类是对事物的抽象,而接口是对行为的抽象。
第4节 内部类
1.形参和返回值
1.1 类名作为形参和返回值
方法的形参是类名,其实需要的是该类的对象;
方法的返回值是类名,其实返回的是该类的对象。
1.2 抽象类名作为形参和返回值
方法的形参是抽象类名,其实需要的是该抽象类的子类对象;
方法的返回值是抽象类名,其实返回的是该抽象类的子类对象。
1.3 接口名作为形参和返回值
方法的形参是接口名,其实需要的是该接口的实现类对象;
方法的返回值是接口名,其实返回的是该接口的实现类对象。
1.4 内部类
定义:就是在一个类中定义一个类。
内部类访问特点:
内部类可以直接访问外部类的成员,包括私有;
外部类要访问内部类的成员,必须创建对象。
1.4.1 成员内部类
按照内部类在类中定义的位置不同,可以分为如下两种形式
在类的成员位置:成员内部类;
在类的局部位置:局部内部类。
以后将按照一整个模块的形式进行更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值