今天看了一下书,发现自己对面向对象有些知识点不熟悉,根据自己情况总结一下。</br>
访问权限如下图,总结来说就是private只能访问类中成员,default/friendly能访问同一package中成员,protected还保护子类的访问,public权限最大。
类的权限只有2种:public和默认。如果在一个源程序文件中,声明了若干类的话,只能有一个类的权限关键字是public。这个类的名字应该和程序文件同名,main方法也应该在这个类中。
</br>
构造方法中,要注意没有返回值,名字前void也不要加。Java中提供默认的构造方法,但是有了自己创建的构造方法后,Java就不给出默认的构造方法,需要在类中自己加一个无参数构造方法。
finalize用法:
<修饰符> void finalize() {},没有参数没有返回值,一个类中只能定义一个finalize()方法,此方法的发生在对象销毁之前。
子类的成员变量与超类的同名时,超类成员变量被隐藏。
不能被继承的类成为最终类,用final声明。final用于成员方法时,此方法不会在子类中被覆盖(即子类中不能有和此方法同名的方法)。
含有abstract抽象方法的类称为抽象类,可含非抽象方法,在子类中必须实现超类中所有抽象方法。
面向对象三大特性:封装、继承、多态。多态性分为重载(overloading)和重写/覆盖(overwrite)。重载是指方法名相同,方法参数的类型或个数不同。仅有返回类型不一样不是正确的方法重载。重写是指子类和超类中有同名且参数相同的方法时,子类中方法覆盖超类中方法。
Java中一个类只能有一个超类(单重继承),但可以有多个接口。接口只由常量和抽象方法组成,变量隐含为final static,必须赋初值。