继承、关键字(this和super)抽象类和接口

继承

继承是一种根据已有类创构建新类的机制,利用继承可以先创建一个拥有共同属性的一般类,再根据该一般类创建具有特殊属性的新类,新类继承一般类的状态和行为,并根据自身的需要添加新的状态和行为。

继承的作用:通过继承可以快速创建新的类,实现代码的重用,提高程序的可维护性,节省大量创建新类的时间,提高开发效率和开发质量。

在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下:

例如:

 

 运行结果为:

注意:

  • 子类不能选择性继承父类;
  • Java不支持多重继承,但一个类可以实现多个接口,从而克服单继承的缺点;
  • 构造方法不会被子类继承,但可以从子类中调用父类的构造方法。

关键字(this和super)

1.this关键字

this代表当前对象,当使用this.成员的形式可以用来调用当前对象中的成员变量或方法,当使用this()形式可以调用当前类中的构造方法。

调用成员方法

可参考如下代码

 将会输出:

 

2.super关键字

super代表父类对象,当使用super.成员的形式可以用来调用父类对象中的成员变量或方法,当使用super()形式可以调用父类中的构造方法。

看下面简单应用

  

 将会输出:

抽象类 

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。

由于抽象类不能实例化对象,所以抽象类必须通过继承的方式才能被使用。

定义

abstract class <类名> 

{

    abstract 方法名(形参列表 )

    // 类体

}

范例如下:

运行结果:

 

接口(interface)

接口在Java语言中是一种引用类型,和类比较相似,和类的区别主要是接口中的方法全部是抽象方法并且是以interface来声明。

接口和抽象类一样无法被实例化,但是可以被子类实现(implements)。一个实现接口的子类,必须实现接口内所描述的全部方法,否则就必须将子类声明为抽象类。

关于接口的使用规范:


1、接口中可以定义常量,不能定义变量,如果你在接口中定义属性,那么通过反编译可以看见他会自动用public static final 修饰,接口中的属性都是全局静态常量,接口中的常量必须在定义时指定初始值。

2、 接口中所有的方法都是抽象方法,接口中方法都会自动用public abstract 修饰,即接口中只有全局抽象方法。

3、 接口不能实例化,接口中不能有构造。

4、 接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类。

5、 接口的实现类必须实现接口的全部方法,否则必须定义为抽象类。

实现接口

类实现接口的语法格式如下:

1 . 创建一个名称为 IMath 的接口,代码如下:

 

 2 . 定义一个 MathClass 类并实现 IMath 接口,MathClass 类实现代码如下:

 

 在实现类中,所有的方法都使用了 public 访问修饰符声明。无论何时实现一个由接口定义的方法,它都必须实现为 public,因为接口中的所有成员都显式声明为 public。

3 . 最后创建测试类 NumTest,实例化接口的实现类 MathClass,调用该类中的方法并输出结果。该类内容如下:

 

 程序运行结果如下所示:

在该程序中,首先定义了一个 IMath 的接口,在该接口中只声明了两个未实现的方法,这两个方法需要在接口的实现类中实现。在实现类 MathClass 中定义了两个私有的属性,并赋予两个属性初始值,同时创建了该类的构造方法。因为该类实现了 MathClass 接口,因此必须实现接口中的方法。在最后的测试类中,需要创建实现类对象,然后通过实现类对象调用实现类中的方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值