java继承问题

一、继承的概念
继承是Java程序设计中的一项核心技术。
什么是继承?简单点来说,继承就是子类继承父类的特征和行为,使得子类具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。通过继承可以快速创建新的类,实现代码的重用,提高程序的可维护性,节省大量创建新类的时间,极大地提高开发效率和开发质量。

二、继承的特点
首先我们知道,继承过来的字段和方法,可以像任何其他字段和方法一样被直接使用。与此同时,我们在子类中可以声明一个与父类中同名的新字段或静态方法,从而“隐藏”父类中的字段或方法,或者可以在子类中声明一个在父类中没有的新字段和方法。最重要的是,可以在子类中编写一个父类当中具有相同名的新实例方法,也就是“方法重写”或“方法覆盖”。最后,对于子类的构造方法,可以调用父类的构造方法,这既可以隐式地实现,也可以通过使用关键字super来实现。
除此以外,继承可以提高代码的复用性。

三、继承的实现
我们通过 extends 关键字可以申明一个类是从另外一个类继承而来的,这其实和C++定义继承类的方法十分相似。Java用关键字extends代替了C++中的冒号(:)。在Java中,所有的继承都是公用继承,而没有C++中的私有继承和保护继承。
具体方法实现如下:

public class Manager extends Employee
{
     ... //添加方法和域
}

关键字extends表明正在构造的类派生于一个已存在的类。已存在的类被称为超类、基类或父类。新类称为子类、派生类或孩子类。

四、继承的变量
(1)当子父类中出现了同名的成员变量时。
在子类中如果需要访问父类中非私有成员变量时,需要使用 super 关键字,至于修饰父类成员变量,类似于之前学过的 this 。 使用格式 super.父类成员变量名。

(2)对子类继承其父类的所有public和protected成员,但不能继承其父类的private成员。那么如何在子类中访问到父类中的字段呢?当然,我们可以在父类中提供访问其私有字段的public或protected方法,子类调用这些方法来访问相应的字段。

class Employee {                  //父类Employee
	private int number = 100;     //声明一个私有变量number并赋值为100
	public int getNumber() {      //声明一个公有成员方法getNumber,返回number
		return number;
	}
}

class Manager extends Employee {   //Employee的子类 Manager
}

public class my {    
	public static void main(String[] args) {
	  Manager x = new Manager();          
	  System.out.println(x.getNumber());
	}
}

五、继承的方法
(1)如果是private方法、static方法、final方法或者构造器,那么编译器将可以准确地知道应该调用哪个方法,我们将这种调用方式称为静态绑定。与此对应的是,调用的方法依赖于隐式参数的实际类型,并且在运行时实现动态绑定。

(2)如果一个子类定义了一个静态类方法,而这个类方法与其父类的一个类方法具有相同的名称、参数格式和类型和返回值,则称在子类中的这个类方法“隐藏”了父类中的该类方法。当调用被重写的方法时,调用的版本是子类的方法;当调用被隐藏的方法时,调用的版本取决于是从父类中调用还是从子类中调用。

(3)当一个子类中一个实例方法具有与其父类中的一个实例方法相同的签名(指名称、参数个数和类型)和返回值时,称子类中的方法“重写”了父类的方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值