基础知识:
一个Java文件可以声明多个类,但是只能有一个类能被声明为public。并且,如果声明了一个public类,那么main函数必须放在这个类里面。
Java的方法的参数传递方式,只能是传值(pass by value)。如果参数是引用类型,那么传入的是实参所指向的对象的地址。
子类对象的生成必须先调用父类对象的构造函数(super()放在子类构造函数的第一行)。
如果子类的构造函数没有显式调用,则Java编译器会自动寻找父类默认的不带参数构造函数。如果父类构造函数没有不带参数的构造函数,则该子类不能通过编译。
Overload(方法重载):表示有两个或者两个以上的方法名字相同,但是参数不同。参数不同有两层含义:1.参数个数不同 2.参数类型不同。注意:方法的返回值对重载没有任何影响。方法名相同,返回值不同的函数时不允许的!
Override(方法重写、覆写):子类声明自己的方法,这个方法和父类中的某个方法返回值相同,方法名相同,参数相同。那么这两个方法构成重写关系。
方法重载发生在一个类内部的两个或两个以上的方法之间。而方法重写则发生在父类与子类两个方法之间。
自定义的类,没有显式指定该类的父类,那么这个类将继承java.lang.Object类。也就是说,Object类是Java中所有类的直接父类或者间接父类。
多态(Polymorphism)
多态:父类型的引用可以指向子类的对象。Thinking in Java 描述多态的几句:People are often confused by other,non-object-oriented feature of Java,like method overloading,which are sometimes presented as object-oriented.Don't be fooled:If it isn't late binding,it isn't polymorphism.
当父类的引用指向子类的对象。调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误。如果有,再去调用子类的该方法(该方法可能是继承下来的,也可能是重写的)。
向上转型:一个父类的引用,能指向子类的对象。
向下转型:一个父类的引用只能转换为引用所指向的子类对象类型的引用。
一个Java文件可以声明多个类,但是只能有一个类能被声明为public。并且,如果声明了一个public类,那么main函数必须放在这个类里面。
Java的方法的参数传递方式,只能是传值(pass by value)。如果参数是引用类型,那么传入的是实参所指向的对象的地址。
子类对象的生成必须先调用父类对象的构造函数(super()放在子类构造函数的第一行)。
如果子类的构造函数没有显式调用,则Java编译器会自动寻找父类默认的不带参数构造函数。如果父类构造函数没有不带参数的构造函数,则该子类不能通过编译。
Overload(方法重载):表示有两个或者两个以上的方法名字相同,但是参数不同。参数不同有两层含义:1.参数个数不同 2.参数类型不同。注意:方法的返回值对重载没有任何影响。方法名相同,返回值不同的函数时不允许的!
Override(方法重写、覆写):子类声明自己的方法,这个方法和父类中的某个方法返回值相同,方法名相同,参数相同。那么这两个方法构成重写关系。
方法重载发生在一个类内部的两个或两个以上的方法之间。而方法重写则发生在父类与子类两个方法之间。
自定义的类,没有显式指定该类的父类,那么这个类将继承java.lang.Object类。也就是说,Object类是Java中所有类的直接父类或者间接父类。
多态(Polymorphism)
多态:父类型的引用可以指向子类的对象。Thinking in Java 描述多态的几句:People are often confused by other,non-object-oriented feature of Java,like method overloading,which are sometimes presented as object-oriented.Don't be fooled:If it isn't late binding,it isn't polymorphism.
当父类的引用指向子类的对象。调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误。如果有,再去调用子类的该方法(该方法可能是继承下来的,也可能是重写的)。
向上转型:一个父类的引用,能指向子类的对象。
向下转型:一个父类的引用只能转换为引用所指向的子类对象类型的引用。