• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > Java 继承方法实例详解

Java 继承方法实例详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了java泛型的方法详解,java泛型详解,java集合类详解,java多线程详解,java线程池详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承可以理解为一个对象从另一个对象获取属性的过程。

如果类A是类B的父类,而类B是类C的父类,我们也称C是A的子类,类C是从类A继承而来的。在Java中,类的继承是单一继承,也就是说,一个子类只能拥有一个父类

继承中最常使用的两个关键字是extends和implements。

这两个关键字的使用决定了一个对象和另一个对象是否是IS-A(是一个)关系。

通过使用这两个关键字,我们能实现一个对象获取另一个对象的属性。

所有Java的类均是由java.lang.Object类继承而来的,所以Object是所有类的祖先类,而除了Object外,所有类必须有一个父类。

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

// A.java
public class A {
  private int i;
  protected int j; 
  public void func() {
   }
} 
// B.java
public class B extends A {
}
</div>

以上的代码片段说明,B由A继承而来的,B是A的子类。而A是Object的子类,这里可以不显示地声明。

作为子类,B的实例拥有A所有的成员变量,但对于private的成员变量B却没有访问权限,这保障了A的封装性。 

IS-A关系

IS-A就是说:一个对象是另一个对象的一个分类。

下面是使用关键字extends实现继承。

public class Animal{
}
public class Mammal extends Animal{
}
public class Reptile extends Animal{
}
public class Dog extends Mammal{
}
</div>

基于上面的例子,以下说法是正确的:

Animal类是Mammal类的父类。

Animal类是Reptile类的父类。

Mammal类和Reptile类是Animal类的子类。

Dog类既是Mammal类的子类又是Animal类的子类。

分析以上示例中的IS-A关系,如下:

Mammal IS-A Animal

Reptile IS-A Animal

Dog IS-A Mammal

因此 : Dog IS-A Animal

通过使用关键字extends,子类可以继承父类所有的方法和属性,但是无法使用 private(私有) 的方法和属性。
我们通过使用instanceof 操作符,能够确定Mammal IS-A Animal

实例

public class Dog extends Mammal{
  public static void main(String args[]){
   Animal a = new Animal();
   Mammal m = new Mammal();
   Dog d = new Dog();
   System.out.println(m instanceof Animal);
   System.out.println(d instanceof Mammal);
   System.out.println(d instanceof Animal);
  }
}
</div>

以上实例编译运行结果如下:

true
true
true
</div>

介绍完extends关键字之后,我们再来看下implements关键字是怎样使用来表示IS-A关系。

Implements关键字使用在类继承接口的情况下, 这种情况不能使用关键字extends。

实例

public interface Animal {}
public class Mammal implements Animal{
}
public class Dog extends Mammal{
}
</div>

instanceof 关键字

可以使用 instanceof 运算符来检验Mammal和dog对象是否是Animal类的一个实例。

interface Animal{}
class Mammal implements Animal{}
public class Dog extends Mammal{
  public static void main(String args[]){
   Mammal m = new Mammal();
   Dog d = new Dog();
   System.out.println(m instanceof Animal);
   System.out.println(d instanceof Mammal);
   System.out.println(d instanceof Animal);
  }
} 
</div>

以上实例编译运行结果如下:

true
true
true
</div>

HAS-A 关系

HAS-A代表类和它的成员之间的从属关系。这有助于代码的重用和减少代码的错误。

例子

public class Vehicle{}
public class Speed{}
public class Van extends Vehicle{
 private Speed sp;
} 
</div>

Van类和Speed类是HAS-A关系(Van有一个Speed),这样就不用将Speed类的全部代码粘贴到Van类中了,并且Speed类也可以重复利用于多个应用程序。

在面向对象特性中,用户不必担心类的内部怎样实现。

Van类将实现的细节对用户隐藏起来,因此,用户只需要知道怎样调用Van类来完成某一功能,而不必知道Van类是自己来做还是调用其他类来做这些工作。

Java只支持单继承,也就是说,一个类不能继承多个类。

下面的做法是不合法的:

public class extends Animal, Mammal{}

Java只支持单继承(继承基本类和抽象类),但是我们可以用接口来实现(多继承接口来实现),脚本结构如:

public class Apple extends Fruit implements Fruit1, Fruit2{}

一般我们继承基本类和抽象类用extends关键字,实现接口类的继承用implements关键字。

本篇文章各位朋友可以参考下

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Java中泛型使用实例详解
  • Java中自动生成构造方法详解
  • Java 继承方法实例详解
  • 深入理解java泛型详解
  • 详解Java中的 枚举与泛型
  • Java中泛型使用实例详解
  • Java中自动生成构造方法详解
  • Java 继承方法实例详解
  • 深入理解java泛型详解
  • 详解Java中的 枚举与泛型

相关文章

  • 2017-05-28Spring Batch读取txt文件并写入数据库的方法教程
  • 2017-05-28Java String类详解_动力节点Java学院整理
  • 2017-05-28SWT(JFace)体验之FormLayout布局
  • 2017-05-28Spring AOP 自定义注解的实现代码
  • 2017-05-28使用eclipse快速新建spirngboot项目的方法
  • 2017-05-28java数据结构与算法之快速排序详解
  • 2017-05-28Java Set简介_动力节点Java学院整理
  • 2017-05-28List集合对象中按照不同属性大小排序的实例
  • 2017-05-28Spring boot 跳转到jsp页面的实现方法
  • 2017-05-28Java数组优点和缺点_动力节点Java学院整理

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • spring mvc实现登录账号单浏览器登录
    • java操作mysql实现增删改查的方法
    • 深入理解Java嵌套类和内部类
    • Java中List Set和Map之间的区别_动力节点Java学院整理
    • java 面试题闰年判断详解及实例
    • Mybatis 中的一对一,一对多,多对多的配置原则示例代码
    • 详解SpringBoot中实现依赖注入功能
    • 详解Java从后台重定向(redirect)到另一个项目的方法
    • SpringMVC结合ajaxfileupload实现文件无刷新上传代码
    • Java 中HashCode作用_动力节点Java学院整理

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有