标签:
继承是面向对象编程中最重要的特征之一,它允许通过继承一个已经存在的类,来编写一个新类。已有的类称为父类,也可以称为基类,超类,新类称为子类也称为派生类。
继承使用关键字extends,用在类名之后,例:public void class salary extends Employee(){
}
子类salary 继承父类Employee
java中的类只能继承一个类。
子类能继承父类中用public protected 修饰的成员。
继承的单根性(单继承):一个java类只能有一个父类。
继承的传递性(多继承):一个java类可以有父类,父类也可以有父类,以此类推。
继承的优点:1.代码的可重用性;2.父类的方法和属性可用于子类;3.使设计应用程序更加简单;4.子类可以扩展父类的属性和方法。
构造方法不能被继承。
所有类的根类都是Object类,如果一个类没有显示的继承另一个类,那么它的父类就是java.lang.Object。Object类中的方法签名:
1.public final Class getClass():使用该方法可以得到我们调用方法的对象的class对象的引用。
2.public int hashCode():该方法返回对象的哈希码值,当使用哈希表以及使用哈希的其它数据结构时,可以用到该方法。
3.public boolean equals(Object x):检测两个对象是否相等。
4.protected Object clone():用于创建对象的一份拷贝,会抛出异常:CloneNotSupportedException.
5.public String toString():返回对象的字符串表示。
6.pritected void finalize():在对象将要被垃圾回收的时候调用,会抛出异常:Throwable
7.public final void wait():在Object类中,该方法还有两个重载的方法,在一个对象上调用将导致当前线程停止执行,直到其它线程在对象上调用notify()为止。wait()和notify()用于线程同步。
8.public final void notify():在Object类中还有一个notifyAll()方法。这些方法用于重启在对象上调用wait()方法时被阻塞的任何线程。
方法重写:子类可以重写从父类继承的方法,从而允许子类添加或者改变父类中方法的行为。
重写规则:(1).子类的方法的返回值的类型、方法名和形式参数列表,必须和父类中的是相同的。
(2).访问修饰符必须不小于父类中的访问修饰符。例:如果父类的方法的访问修饰符是public,子类的必须是public;如果父类的是protected,子类的必须是public或protected.
(3).子类中重写的异常不能抛出比父类更多的异常。
用equals()方法比较两个对象是否相同:如果两个对象是相等的,那么它们必须产生相同的哈希码。因此,如果一个类重写了equals()方法,通常也需要重写hashCode()方法。比较运算符“==”用于检测是否两个引用指向同一对象。
方法重写是父类与子类之间的关系,方法重载是类的内部方法之间的关系。
关键字super:子类想要给继承的方法添加行为,但是并不是完全替换父类的方法。在这种情况下,可以使用super来调用父类中重写的方法。
子类中调用父类的构造器:super(参数名);必须写在方法中的第一条语句。默认情况下,子类构造器调用父类的无参构造器。
关键字final:修饰类,这个类不能被继承,没有子类;修饰方法,这个方法不能被重写;修饰变量,值不能被改变。
标签:
原文地址:http://www.cnblogs.com/fping/p/4452078.html