java继承多态

1:final关键字可以干什么?有什么特点?
修饰类,使得类不能被继承
修饰变量,相当于const,变量不能被更新
修饰方法,方法不能被重写override

2:final关键字的面试题?
A:修饰局部变量
基本类型:值不变
引用类型:地址不变,例如在一个类中再new一个其他类的final对象d,则d中变量可变,但d不能再new一次
B:初始化时机
被final修饰的变量只能赋值一次。
在构造方法完毕前。(非静态的常量)

3:多态是什么,前提是什么?
同一个对象(事物),在不同时刻体现出来的不同状态。
前提:
继承关系
方法重写,实际上可以没有,但如果没有,没有实际意义
父类引用指向子类对象

4:多态中成员访问的特点?
成员变量:编译运行都看左边
成员方法:编译看左边,运行看右边
静态方法:编译看左边,运行看左边。(静态和类相关,算不上重写,所以,访问还是左边的)

5:多态的好处及弊端?如何解决多态的弊端?
好处:提高了代码的维护性(继承保证)
提高了代码的扩展性(由多态保证)
弊端:不能使用子类特有的方法
如何解决弊端:创建子类对象调用方法即可。(可以,但是很多时候不合理。而且,太占内存了)
把父类的引用强制转换为子类的引用。(向下转型)
6:什么是向上转型?什么是向下转型?
把子类对象转为父类对象
把父类对象强制转为子类对象

8:抽象类概述及其特点?
用abstract修饰的类为抽象类
抽象类不能用new创建对象,但它有构造方法,构造方法用于子类访问父类的数据的初始化,但可以作为上转型对象
抽象类可以没有抽象方法,但一旦有抽象方法,则该类必须是抽象类
如果子类不想重写父类抽象方法,则子类必须为抽象类,否则必须重写

9:抽象类成员特点?
抽象方法不能有方法体
在抽象类中可以有变量和常量(final)
有构造方法

11:抽象类的小问题
A:一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
可以没有抽象方法,这样意义是不让创建抽象类对象
B:abstract不能和哪些关键字共存
private,冲突,private 法要求不能继承,abstract要求重写,
final, 冲突,同上
static(无意义),抽象类中可以有静态方法,但abstract和static不能同时修饰方法

12:接口的概述及其特点?
interface 接口名{变量,抽象方法}
类用implement 接口名实现多态
13:接口的成员特点?
变量只能为常量,int a=100;实际上默认是public static final int a=100;
没有构造方法
接口中方法默认为public。而且接口中默认为public abstract,所以在类中重写时必须写public否则就降低了权限

14 接口和类的继承
类与类:
继承关系,只能单继承,可以多层继承。
类与接口:
实现关系,可以单实现,也可以多实现。
并且还可以在继承一个类的同时实现多个接口。
接口与接口:
继承关系,可以单继承,也可以多继承。

15:抽象类和接口的区别?
成员区别:
类:有变量或常量,构造方法,成员方法可以抽象,或非抽象
接口:只有常量,抽象方法,无构造方法
继承关系
类:单继承
接口:多继承
设计理念:
抽象类 被继承体现的是:”is a”的关系。抽象类中定义的是该继承体系的共性功能。
接口 被实现体现的是:”like a”的关系。接口中定义的是该继承体系的扩展功能。:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值