标签:
继承是面向对象编程中最重要的特征之一。在面向对象编程中,可以通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类,这种方式被称为继承。已有的类称为父类,而新类称为子类。父类也可以称为基类、超类,子类也可以称为派生类。
使用继承不仅可以重用已有的代码,从而避免代码重复,还可以创建一个更容易维护和修改代码的程序。
在Java中,一个类使用关键字extends继承其它类。关键字extends出现在类声明时的类名后,extends后面跟要继承的类的名称。
继承的单根性,传递性(单继承与多继承)某些OOP语言(例如:C++)允许子类有多个父类,但在Java中,一个类只能有一个父类。
所有类的根类Object,Java语言API中包含一个名为Object的特殊类,是整个Java类层次中的根类。Object在Java.lang包中,是每个Java类的父类,要么是直接父类,要么是间接父类。
Object类中的方法签名:
public final Class getClass() (类的信息保存在一个Class对象中)
public int hashCode()(该方法返回对象的哈希值码,如果两个对象是相等的,那么他们必须产生相同的哈希码。如果一个类重写了equals()方法,通常也需要重写hashCode()方法)
public boolean equals(Object x) (使用该方法可以检测两个对象是否相等)
protected Object clone throws CloneNotSupportedException (clone()方法用于创建对象的一份拷贝)
public String toString (该方法返回对象的字符串表示)
protected void finalize() throws Throwable (该方法在对象将要被垃圾回收时调用)
public final void wait()throws InterruptedException (在Object类中,wait()方法还有其它两个重载版本,wait()方法将导致当前线程停止执行,直到其他线程在相同对象上调用notify()方法为止。wait()和notify()用于线程同步)
public final void notify() (该方法用于重启在对象上调用wait()方法时被阻塞的任何线程)
方法重写(在子类写):
当子类重写父类的方法时,必须遵循以下规则:
1、子类方法的返回值类型、方法名和形式参数列表,必须和父类中相一致。
2、访问修饰符必须不小于父类中的访问修饰符
3、子类中重写的异常不能抛出比父类更多的异常
super关键字:(一个类可以用super来显式地引用从父类继承的成员变量或方法,可以把super看作子对象对父对象的引用)super用于调用父类的构造器(super())
<构造方法不能被继承,只能被调用;public,protected才能被继承>
final关键字:一个类可以声明为最终类,但最终类不能被继承(不能有子类);一个方法可以声明为最终方法,但最终方法不能被重写。
abstract关键字(抽象):
abstract修饰类和方法,抽象类不能被实例化,必须由子类来实现(除非抽象方法是子类)
public abstract class Test{}
抽象方法没有方法主体(方法主体实现没有意义,抽象方法在抽象类中)
public abstract void shout();
标签:
原文地址:http://www.cnblogs.com/h1234566789/p/4419465.html