初识继承

来源:互联网 发布:太空模拟软件 编辑:程序博客网 时间:2024/06/07 13:30

继承是面向对象程序设计的一个基本的概念;人们可以利用继承基于已存在的类构造一个新类,其实就是复用(继承)这些类的方法和域,在此基础上还可以添加一些新的方法和域,以满足新的需求。继承是Java程序设计中的一项核心技术。

关键字:extends

例如:public class Manager extends Employee{
添加方法和域
}

在理解了继承是什么之后,需要弄清楚另外几个问题。
1.如果超类的一些方法被子类继承但不适合子类使用,这时候就需要一个新的方法来覆盖(override)超类中的这个方法。
如:Manager的工资由薪水和奖金之和构成,但是Employee中的工资没有包含奖金。
public class Manager extends Employee{
….
public double getSalary() //重写了超类中的getSalary方法
{
double baseSalary = super.getSalary();
return baseSalary + bonus;
}
}

2.this和super在调用方法时的一些区别。(目前我知道的)
在Java中使用关键字super调用超类(父类)的方法,super不是一个对象的引用,不能将super赋给另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字。
super的两个用途:一,调用超类的方法;二,调用超类的构造器。
this的两个用途:一,引用隐式参数;二,调用该类其他的构造器。
当子类的构造器不能访问超类的私有域的时候,我们通过super实现对超类构造器的调用来对超类的私有域进行初始化。(超类中也会有私有域)

方法调用的过程:
1,首先编译器查看对象的声明类型和方法名。
如:调用x.f(param) ,可能会存在多个名字为f,但参数类型不一样的方法。f(int)或f(String),此时编译器将一一列举所有类中名为f的方法和其超类中访问属性为public且名为f的方法。(超类中的私有方法是不可以被访问的)
2,编译器将查看调用方法时提供的参数类型。
重载解析:如果在所有名为f的方法中存在一个与提供参数类型完全匹配,就选择这个方法。

方法的签名:方法的名字和参数列表

Java中用于控制可见性的4个访问修饰符:
1,仅对本类可见——private
2,对所有的类可见——public
3,对本包和所有子类可见——protected
4,对本包可见——默认(很遗憾),不需要修饰符

原创粉丝点击