第4天

1.向上造型:

1)超类型的引用指向派生类的对象

2)能点出什么,看引用的类型

例如:

    Animalo1       =   new       Tiger();
父类/超类型的引用   指向         子类/派生类的对象

o1只能访问父类Animal中的成员,访问不了子类Tiger中的成员

(如果子类中重写了父类的方法,那么可以访问子类的重写方法)

  Tigero1= new   Animal();//编译错误
  Animal o2=new Dog();
  Animal o3=new Cat();
  Animal o4=new Bird();
  o1到o4只能点出Animal类中的,子类中特有的点不出来

2.方法的重写:----重新写,覆盖

1)发生在父子类中,方法签名一样(方法名称相同,参数列表相同),方法体不同

2)重写方法被调用时,看对象的类型

3)遵循“两同两小一大”原则:------了解

            3.1)两同:
                3.1.1)方法名称相同
                3.1.2)参数列表相同
            3.2)两小:
                3.2.1)派生类方法的返回值类型小于或等于超类方法的
                1)void时,必须相等
                    2)基本类型时,必须相等
                    3)引用类型时,小于或等于
                3.2.2)派生类方法抛出的异常小于或等于超类方法的-----异常之后讲
            3.3)一大:
                3.3.1)派生类方法的访问权限大于或等于超类方法的-----明天上午讲

3.重写和重载的区别:----------常见面试题

1)重写(Override):

            1.1)发生在父子类中,方法名称相同,参数列表相同,方法体不同----只回答这一个
            1.2)遵循“运行期绑定”,看对象的类型来调用方法

2)重载(Overload):

            2.1)发生在一个类中,方法名称相同,参数列表不同,方法体不同----还有这一个
            2.2)遵循“编译期绑定”,看参数/引用的类型来绑定方法

* 补充:

  编译期(只检查语法,没有内存分配):如果不符合java规定则发生编译错误
  运行期(由JVM分配内存---堆放对象/局部变量,栈放成员变量,方法区放方法):如果不符合java规定,则发生运行错误(各种异常)
  画窗口---swing相关的
    1)JFrame类:框架(相框)
    2)JPanel类:面板