[2017.10.23]作业04

1:教练和运动员案例(学生分析然后讲解)
乒乓球运动员和篮球运动员。
乒乓球教练和篮球教练。
为了出国交流,跟乒乓球相关的人员都需要学习英语。
请用所学知识:

分析,这个案例中有哪些抽象类,哪些接口,哪些具体类


抽象类:教练 运动员

接口:乒乓球 篮球 学习英语

具体类:乒乓球运动员 篮球运动员 乒乓球教练 篮球教练


2:final关键字可以干什么?有什么特点?

final如果修饰一个类,该类不能被继承.final修饰类的成员变量,该成员变量的值不可修改.


3:final关键字的面试题?

A:修饰局部变量

基本类型:基本类型的值不能发生改变 

引用类型:引用类型的地址值不能生改变,但是,该对象的堆内存的值是可以改变的.
 

B:初始化时机

构造代码块中可以进行初始化 
构造方法中可以进行初始化 
定义成员变量的时候,可以直接进行初始化. 


4:多态是什么,前提是什么?

多态:一个事物在不同时刻体现出来的不同状态.

前提条件(缺一不可) : 

1)必须有继承关系(如果没有继承关系,谈不上多态!) 
2)必须有方法重写 
3)有父类引用指向子类对象:向上转型



5:多态中成员访问的特点?
1)成员变量: 
编译看左边,运行看左边 
2)成员方法(非静态的成员方法): 
编译看左,运行看右;由于存在方法重写,所以就运行最终的就是子类的成员方法 
3)静态成员方法:(静态方法算不上方法重写,静态直接跟类有关系!) 
编译看左,运行看左 



6:多态的好处及弊端?如何解决多态的弊端?

多态的好处(特点): 
1)提高代码的维护性(由继承保证) 
2)提高代码的扩展性(由多态保证) 
(java的开发原则:低耦合,高内聚)

多态的弊端: 
不能访问子类的特有功能

解决方案: 
1)创建子类的具体对象,来访问自己的特有功能;虽然可以解决多态的弊端,但是从内存角度考虑,需要创建子类对象,那么必须在堆内存开辟空间, 耗费内存,浪费空间

2)既然多态的第三个前提条件:父类引用指向子类对象,那么可以向下转型:将父类的引用强制转换为子类的引用(前提必须有父类的引用存在) 
3)向下转型必须依赖于向上转型



7:什么是向上转型?什么是向下转型?

向上转型:将子类对象转为父类对象

向下转型:把父类对象转为子类对象



8:抽象类概述及其特点?

当一个类中如果有抽象功能(抽象方法)的时候,那么这个类一定要定义为抽象类

抽象类不能实例化



9:抽象类成员特点?
1)成员变量: 
可以是变量也可以是自定义常量 
2)构造方法: 
抽象类可以有构造方法:包括有参构造和无参构造 
作用:通过抽象类多态的形式:让子类进行数据的初始化 
3)成员方法: 
可以有抽象方法,也可以有非抽象方法 

10:抽象类的小问题

A:一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?

可以


B:abstract不能和哪些关键字共存

private final static


11:接口的概述及其特点?

接口体现的是一种扩展功能

不能实例化(不能直接创建对象)


12:接口的成员特点?

1)成员变量: 
只能是常量:存下默认修饰符:public static final (永远建议自己给出默认修饰符) 
2)构造方法: 
接口是没有构造方法的 
3)成员方法: 
接口中的成员方法默认修饰符:public abstract(永远建议自己给出默认修饰符)


13:抽象类和接口的区别?

1)成员的区别: 
①成员变量: 
抽象类:成员变量可以是常量,也可以是变量 
接口:成员变量只能是一常量:存在默认修饰符:public static final 
②构造方法: 
抽象类:可以有无参构造,有参构造方法 
作用:通过子类进行数据初始化(通过子类创建对象) 
接口:没有构造方法的 
③成员方法: 
抽象类:可以有抽象方法,也可以有非抽象方法 
接口:只能是抽象方法:存在默认修饰符:public abstract

2)关系的区别: 
①类与类的关系: 
继承关系:extends,java中只支持单继承,不支持多继承,但是可以多层继承! 
②类与接口的关系: 
实现关系:implements,并且,一个类在继承另一个类的同时,可以实现多个接口 
(class 子实现类名 enxtends Object implements 接口名1,接口名2…) 
③接口与接口的关系 
继承关系:extends,可以支持单继承,也可以多继承!

3)设计理念的区别: 
抽象类: 
体现的是一种”is a”的关系,存在继承关系!(抽象类多态) 
接口: 
体现的是一种”like a”的关系,由于接口的一种扩展功能.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值