java08作业

第一天

1:教练和运动员案例(学生分析然后讲解)
乒乓球运动员和篮球运动员。
乒乓球教练和篮球教练。
为了出国交流,跟乒乓球相关的人员都需要学习英语。
请用所学知识:
分析,这个案例中有哪些抽象类,哪些接口,哪些具体类
抽象类:人
借口:英语
具体类:
乒乓球运动员和篮球运动员。
乒乓球教练和篮球教练。


2:final关键字可以干什么?有什么特点?
final修饰局部变量
基本数据类型:如果局部变量是一个基本数据类型,那么被final修饰,基本数据类型的变量的值不能再改变!
引用数据类型:如果用final修饰引用类型的变量,那么它不能在重写分配堆内存空间,但是可以改变可以成员变量的值




3:final关键字的面试题?
A:修饰局部变量
B:初始化时机

4:多态是什么,前提是什么?
多态:一个事物在不同时刻体现出来的不同状态
                1)条件1:必须有继承关系(如果没有继承关系,谈不上多态!)
2)条件2:必须有方法重写
子类出现了父类一样的 方法声明
3)有父类引用指向子类对象:向上转型
Fu f = new Zi() ;
多态的三个条缺一不可!




5:多态中成员访问的特点?
成员变量 编译看左边,运行看左边
成员方法 编译看左,运行看右;由于存在方法重写,所以就运行最终的就是子类的成员方法
静态方法 编译看左,运行看左


6:多态的好处及弊端?如何解决多态的弊端?
好处:
    1)提高代码的维护性(由继承保证)
    2)提高代码的扩展性(由多态保证)
弊端
    不能访问子类的特有功能
解决方案
    1)创建子类的具体对象,来访问自己的特有功能;虽然可以解决多态的弊端,但是从内存角度考虑,需要创建子类对象,那么必须在堆内存开辟空间,
    耗费内存,浪费空间!
    2)既然多态的第三个前提条件:父类引用指向子类对象,那么可不可以将子类的引用指向父类对象呢?


7:什么是向上转型?什么是向下转型?
向下转型:将父类的引用强制转换为子类的引用:前提必须有父类的引用存在;
向下转型必须依赖于向上转型!

8:抽象类概述及其特点?
每一个动物的吃和睡的功能不一样,不应该把动物类定义为一个具体类,而是给出一个声明(abstract)
当一个类中如果有抽象功能(抽象方法)的时候,那么这个类一定要定义为抽象类!
态形式:父类的引用指向子类对象,通过子类进行初始化!
 抽象类的子类的特点:
 
1)抽象类的子类是抽象类,那么没有意义!
最终使用的就是通过子类进行对象初始化的,如果子类都被抽象修饰了,那么也不能创建对象,所以没意义

 抽象类多态:
强制子类必须重写当前抽象的父类中所有的抽象方法
还可以提高代码的维护性(里面继承关系保证!)



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




10:抽象类的小问题
A:一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
B:abstract不能和哪些关键字共存
一个抽象类中可以抽象,也可以有非抽象的(作为一个判断题记忆!)
抽象类不能实例化:抽象类不能创建对象
一个抽象类如何进行实例化:
通过抽象类多态形式:父类的引用指向子类对象,通过子类进行初始化!
抽象类的子类的特点:
1)抽象类的子类是抽象类,那么没有意义!
最终使用的就是通过子类进行对象初始化的,如果子类都被抽象修饰了,那么也不能创建对象,所以没意义
abstract不能和static,final,private修饰


11:接口的概述及其特点?
接口的概念:
           接口体现的是一种扩展功能。


接口的特点:不能实例化(不能直接创建对象)


12:接口的成员特点?
成员变量:
  只能是常量:存下默认修饰符:public static final (永远建议自己给出默认修饰符)
构造方法:
接口是没有构造方法的
成员方法:
  接口中的成员方法默认修饰符: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"的关系,由于接口的一种扩展功能





第二天

2:形式参数和返回值问题
形式参数
基本类型
引用类型
返回值类型
基本类型
引用类型




3:内部类的概述及访问特点
内部类:在一个类中定义另一个类
访问特点:外部类名.内部类名 对象名 = new 外部类名.内部类名() ;




4:内部类的分类
答:成员内部类:在外部类的成员位置
    局部内部类:在外部了的局部位置定义的这个类


5:匿名内部类的格式和应用及面试题


答:new 接口名或者类名(){
  方法重写;
  }
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值