Java基础--继承

# 继承


继承

# 1、类、超类&子类

Java中使用extends关键字表示继承

关键字extends表明正在构造的新类派生于一个已存在的类。这个已存在的类称为超类(super class)基类(base class)、或父类(parent class);新类称为子类(subclass)派生类(derived class)孩子类(child class)

超类并不优于子类或者比子类拥有更多的功能。实际上恰恰相反,子类比超类拥有更多的功能。

在扩展超累定义子类的时候,只需要指出子类与超类的不同之处。因此在设计类的时候,应该将最一般的方法放在超类中,而将更特殊的方法放在子类中,这种将通用功能抽取到超类的做法在面向对象程序设计中十分普遍。

# 2、覆盖方法

超类中的有些方法对子类并不一定适应。而我们是无法在子类中访问父类中的私有字段与方法的。我们可以借助super关键字解决这个问题。

关键字this有两个含义:一是指隐式参数的引用,二是调用该类的其它构造器。

关键字super也有两个含义:一是调用超类的方法,二是调用超类的构造器。在调用构造器的时候this关键字与super关键字紧密相连。调用构造器的语句只能作为一个构造器的第一条语句出现。构造器参数可以传递给当前类(this)的另一个构造器,也可以传递给超类的构造器(super)。

一个对象变量可以指示多种实际类型的现象称为多态(polymorphism)。在运行时能够自动地选择适当的方法,称为动态绑定(dunamic binding)。

在覆盖一个方法的时候,子类方法的可见性不能低于超类方法的可见性。特别是,如果超类方法时public,子类方法必须也要声明为public

# 3、阻止继承:final类和方法

有时候希望阻止人们利用某个类定义子类。不允许扩展的类被称为final类。如果在定义类的时候也使用了final修饰就表明这个类是final类。

类中的某个特定方法也可以被声明为final,如果这样做了,子类就不能覆盖这个方法。(final类中的所有方法自动地成为final方法)。

你可能感兴趣的:(Java,java,开发语言,后端)