10.21作业及总结

来源:互联网 发布:小说编写软件 编辑:程序博客网 时间:2024/06/05 02:49

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

测试类:

package _06.homework;

public class Test {
    public static void main(String[] args) {
        //实现接口的类是最具体的类,里面的功能最多:创建该类对象
        PingpangCoachStudy coach = new PingpangCoachStudy() ;
    
        coach.setName("Tom") ;
        coach.setAge(50) ;
        coach.setSex("男");
        System.out.println(coach.getName()+"---"+coach.getAge()+"---"+coach.getSex());
        
        coach.eat() ;
        coach.sleep() ;
        coach.studyEnglish() ;
        System.out.println("--------------------");
        //通过有参构造进行数据初始化
        PingpangAthleteStudy athlete = new PingpangAthleteStudy() ;
        athlete.setName("Sally") ;
        athlete.setAge(19) ;
        athlete.setSex("女");
        athlete.eat() ;
        athlete.sleep() ;
        System.out.println(athlete.getName()+"---"+athlete.getAge()+"---"+athlete.getSex());
    }    
}


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

       final关键字可以用来修饰类,修饰类的成员变量,修饰成员方法。

       特点:如果修饰类则该类不能被继承,如果修饰成员方法则改方法不能被重写,如果修饰成员变量则该成员变量不能被修改。大多数情况,final一般跟public static一起使用!   

3:final关键字的面试题?
    A:修饰局部变量
    B:初始化时机
        A   基本数据类型:如果局部变量是基本数据类型被final修饰后,其值不能被改变。
                          引用数据类型:如果引用类型被final修饰,那么就不能再重新分配堆内存空间,但可以改变成员变量的值!    
        B   初始化时机:构造代码块中可以进行初始化。
                        构造方法中可以进行初始化。
                        定义成员变量的时候可以进行初始化。

4:多态是什么,前提是什么?
      多态是一个事物在不同时刻的不同状态
      前提:1 必须存在继承关系。
            2 必须有方法重写。
            3 有父类引用指向子类对象。

5:多态中成员访问的特点?
      成员变量:编译看左,执行看左。
      成员方法:编译看左,执行看右。(存在方法重写)
      静态方法:编译看左,执行看左。

6:多态的好处及弊端?如何解决多态的弊端?
      好处:提高代码的维护性(由继承保证)
            提高代码的扩展性(由多态保证)

7:什么是向上转型?什么是向下转型?
      向上转型:即父类引用指向子类对象
               Fu  fu=new  zi();
      向下转型:将父类的引用强制转换为子类的引用
               cat 3=(cat3)a;

8:抽象类概述及其特点?
      概述:每一种事物具有的功能不一样,所以不应该把其定义为依噶尔具体类,而是给出一个声明(abstract)
      特点:抽象类不能实例化,需要通过子类进行实例化。

9:抽象类成员特点?
      成员变量:可以为变量也可以是自定义常量。
      构造方法:抽象类可以有有参构造和无参构造。
      成员方法:可以由抽象的也可以是非抽象的方法。

10:抽象类的小问题
    A:一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
    B:abstract不能和哪些关键字共存
        A  可以,不能让创建对象。
        B  final 和 abstract不能共存。
           private 和 abstract不能共存。
           static 和 abstract不能共存。

11:接口的概述及其特点?
       概述:接口体现的是一种扩展功能。
       特点:接口里面的方法只能是抽象方法。
             Interface  接口名{

             }
             接口不能实例化,必须通过过子实现类进行初始化。因此子实现类不能为抽象类,否则没有意义。
             class 子实现类名 implements 接口名{

             }
12:接口的成员特点?
       成员变量:只能是常量存在默认修饰符:public static final(建议永远自己给出)
       构造方法:无构造方法。
       成员方法:接口中的成员方法默认修饰符:public abstract(建议永远自己给出)

13:抽象类和接口的区别?
       1)成员区别:
          a 成员变量:
            抽象类: 成员变量可以是常量,也可以是变量;
            接口:成员变量只能是常量,存在默认修饰符:public static final
          b 构造方法:
            抽象类:可以有参,可以无参。
            接口:无构造方法。
          c 成员方法的区别:
            抽象类:可以有抽象方法,和非抽象方法。
            接口:只能是抽象方法。存在默认修饰符public abstract
       2)关系的区别:
          类与类:继承关系。只支持单继承,但可多层继承。
          类与接口:实现关系。implements 可以实现多个接口。
          接口与接口:继承关系。可以支持单继承,也可以支持多继承。
       3)设计理念的区别:
          抽象类:体现的是一种“is a”的关系,存在继承关系(抽象类多态)
          接口:体现的是一种“like a”的关系,由于接口是一种扩展功能。
原创粉丝点击