通过继承手段修改类功能

本文通过一个简单实例解释了面向对象编程中的继承概念。演示了如何通过继承原有类并覆盖方法实现功能修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    继承是面向对象的特性之一,即成为我们提供了访问类的特定功能的方法。
同时继承还包含一个特性,就是如果一个类AS继承了另一个类A,那么实际上
AS可以被看成是类A的一个特殊类型,同时如果类AS中没有覆盖类A中的方法,
那么当调用AS.xxx() 方法时会直接调用父类A的相应的xxx方法。

以下包含一个简单的实例来解释继承的特性

For Example:

A.class

public class A
{
 private String name;
 private String serial;

 public A()
 {
  name = "vhly[FR]";
  serial = "123456";
 }

 public void print()
 {
  if(isREG())
  {
   System.out.println("Good User! have a good time");
  }
 }

 public boolean isREG() // 准备覆盖的类方法
 {
  return name.equals(serial); // is very easy!!!!!!!!!
 }

 public void setData(String n, String s)
 {
  name = n;
  serial = s;
 }
}

以上类A的功能是如果输入的用户名和序列号相同,则显示"Good User! have a good time"
否则无显示。

那么如何对类A进行修改呢(输入任何数据都会显示正确信息)

public class ACrk extends A // 继承类 并且修改相应的方法
{
 public ACrk()
 {
  super();
 }

 public boolean isREG()
 {
  return true; // 其实对于类A来说并没有被修改,而是利用继承技术生成一个
                             // 类A的特例,在调用时也应该调用ACrk,而不是A
 }
}

调用类,并执行功能

public class Test4
{
 ACrk ac;

 public Test4()
 {
  ac = new ACrk();
 }

 public void test()
 {
  ac.setData("vhly[FR]","GOODluckFoR YOu");
   // 由于ACrk继承了类A,所以可以直接调用setData()方法
  ac.print(); // 同上
 }

 public static void main(String args[])
 {
  Test4 t4 = new Test4();
  t4.test();
 }
}

执行Test4类,会发现程序会输出正确信息。

同样,该方法也适用于GUI程序。

vhly[FR] 2006/04/18

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值