全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java 继承方法实例详解

继承是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 {
}

以上的代码片段说明,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{
}

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

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);
  }
}

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

true
true
true

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

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

实例

public interface Animal {}
public class Mammal implements Animal{
}
public class Dog extends Mammal{
}

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);
  }
} 

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

true
true
true

HAS-A 关系

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

例子

public class Vehicle{}
public class Speed{}
public class Van extends Vehicle{
 private Speed sp;
} 

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关键字。

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


# Java继承方法实例  # Java继承方法  # Java继承实例  # java的继承原理与实现方法详解  # 浅谈Java之终止继承:Final类和Fianl方法  # 详解 Java继承关系下的构造方法调用  # java实现多线程的两种方式继承Thread类和实现Runnable接口的方法  # 详解Java继承中属性、方法和对象的关系  # java用接口、多态、继承、类计算三角形和矩形周长及面积的方法  # 解析Java继承中方法的覆盖和重载  # java继承中的构造方法实例解析  # Java继承方法重写实现原理及解析  # 子类  # 而来  # 多个  # 这两个  # 来做  # 来实现  # 面向对象  # 有一个  # 是一个  # 也就是说  # 抽象类  # 又是  # 可以用  # 只需  # 是从  # 却没有  # 再来  # 是怎样  # 这种情况  # 要知道 


相关文章: 如何选择靠谱的建站公司加盟品牌?  如何在橙子建站中快速调整背景颜色?  如何在云虚拟主机上快速搭建个人网站?  如何在阿里云虚拟主机上快速搭建个人网站?  如何通过VPS建站实现广告与增值服务盈利?  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  如何做网站制作流程,*游戏网站怎么搭建?  内网网站制作软件,内网的网站如何发布到外网?  如何快速登录WAP自助建站平台?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  如何基于云服务器快速搭建个人网站?  ppt制作免费网站有哪些,ppt模板免费下载网站?  如何快速生成ASP一键建站模板并优化安全性?  如何配置IIS站点权限与局域网访问?  再谈Python中的字符串与字符编码(推荐)  开封网站制作公司,网络用语开封是什么意思?  Android自定义listview布局实现上拉加载下拉刷新功能  如何在Windows虚拟主机上快速搭建网站?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  重庆网站制作公司哪家好,重庆中考招生办官方网站?  定制建站流程步骤详解:一站式方案设计与开发指南  名字制作网站免费,所有小说网站的名字?  建站主机如何选?性能与价格怎样平衡?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  如何在云指建站中生成FTP站点?  香港网站服务器数量如何影响SEO优化效果?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  建站之星免费模板:自助建站系统与智能响应式一键生成  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  重庆市网站制作公司,重庆招聘网站哪个好?  如何在IIS中新建站点并配置端口与物理路径?  网站制作公司排行榜,四大门户网站排名?  制作门户网站的参考文献在哪,小说网站怎么建立?  公众号网站制作网页,微信公众号怎么制作?  建站之星如何防范黑客攻击与数据泄露?  大连 网站制作,大连天途有线官网?  高防服务器租用如何选择配置与防御等级?  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  网站制作公司,橙子建站是合法的吗?  安云自助建站系统如何快速提升SEO排名?  Android使用GridView实现日历的简单功能  如何在阿里云服务器自主搭建网站?  如何通过老薛主机一键快速建站?  如何设置并定期更换建站之星安全管理员密码?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  C++中引用和指针有什么区别?(代码说明)  详解jQuery中基本的动画方法  北京专业网站制作设计师招聘,北京白云观官方网站?  如何选择适配移动端的WAP自助建站平台? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。