栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

继承、关键字(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 接口,因此必须实现接口中的方法。在最后的测试类中,需要创建实现类对象,然后通过实现类对象调用实现类中的方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351639.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号