开发者社区> ghost丶桃子> 正文

Java千百问_05面向对象(007)_java类的继承有什么意义

简介:
+关注继续查看

1、继承是什么

继承,是面向对象语言的重要机制。 
概念:一个类(子类)可以使用从另一个类(父类、超类)继承属性和方法。 
Java中的继承是单一继承,即一个子类只能有一个父类。 
当然,接口(interface)也可以继承。 
了解什么是类看这里:类、对象到底有什么秘密 
了解接口的概念看这里:java接口到底是什么 
接口和抽象类的区别看这:接口和抽象类有什么区别

2、如何使用继承

广义上讲,继承类、继承抽象类、实现接口都可以称为继承,但目前所说的java继承只是继承类或抽象类,即is-a模式最直接的体现。 
了解更多is-a模式看这里:is-a,has-a,like-a是什么 
继承类、抽象类使用extends关键字,实现接口使用implements关键字。通过使用这些关键字,我们可以使一个对象获得另一个对象的属性及方法。

例如:

public class Animal{
}

public class Mammal extends Animal{
}

public class Reptile extends Animal{
}

public class Dog extends Mammal{
}

根据上面的例子,面向对象的术语即:

  • 动物是哺乳动物类的父类。
  • 动物是爬虫类的父类。
  • 哺乳动物和爬行动物是动物类的子类。
  • 狗是哺乳动物双方和动物类的子类。
  • 因此:狗也是动物的子类。

使用这个例子:

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

要注意的一个非常重要的事实是,Java只支持单一继承。这意味着,一个类不能扩展多个类。因此,以下是非法的:

public class extends Animal, Mammal{
}





3、如何继承接口

接口也可以扩展另一个接口,类似于一个类扩展另一个类中的方法。同样使用extends关键字来扩展接口,使子接口继承父接口的方法。 
下面的Sports接口是由Hockey和Football接口扩展。

//Filename: Sports.java
public interface Sports
{
   public void setHomeTeam(String name);
   public void setVisitingTeam(String name);
}

//Filename: Football.java
public interface Football extends Sports
{
   public void homeTeamScored(int points);
   public void visitingTeamScored(int points);
   public void endOfQuarter(int quarter);
}

//Filename: Hockey.java
public interface Hockey extends Sports
{
   public void homeGoalScored();
   public void visitingGoalScored();
   public void endOfPeriod(int period);
   public void overtimePeriod(int ot);
}



Hockey接口有四个方法,但它继承了两个Sports接口的方法,因此,实现Hockey类需要实现六个方法。同样地,一个实现Football类需要实现Football的三个方法,以及Sports的两个方法。

4、java如何多重继承

我们知道,一个java类只能继承一个父类,所以,多重继承是不允许的。 
但是,一个接口可以扩展多个父接口。 
例如,Sports和Event都是接口:

public interface Hockey extends Sports, Event

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【Java|基础篇】面向对象三大特性之封装
面向对象有三个特性:封装,继承和多态,本文主要讲解封装. 封装是面向对象编程的基本原则之一,它可以提高程序的安全性、稳定性、可维护性和可扩展性,减少了代码的冗余,提高了代码的重用性。因此,在进行面向对象编程时,封装是一个非常重要的概念。
20 0
【JavaSE成神之路】Java面向对象(下)
哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容还是Java的面向对象。
21 0
【JavaSE成神之路】Java面向对象(上)
哈喽,我是兔哥呀,今天就让我们继续这个JavaSE成神之路! 这一节啊,咱们要学习的内容是Java的面向对象。
25 0
Java面向对象—抽象类和接口
Java面向对象—抽象类和接口
13 0
Java面向对象—多态
Java面向对象—多态
15 0
Java面向对象—继承
Java面向对象—继承
6 0
Java面向对象
Java面向对象
13 0
Java面向对象 继承
Java面向对象 继承
18 0
14 java面向对象的三大特征【继承、封装、多态】
封装的实现: 实现三部曲: ①私有化,属性 ②提供公共的getXxx()方法 ②提供公共的setXxx()方法
28 0
大数据开发基础的编程语言的Java的语言基础的面向对象
大数据开发是当前IT行业的一个热门领域,对于开发者来说,了解基础的编程语言是必不可少的。Java作为一种面向对象的编程语言,已经成为大数据开发中非常重要的一部分。本文将介绍Java语言的基础知识和面向对象编程。
8 0
+关注
ghost丶桃子
文章
问答
视频
文章排行榜
最热
最新
相关课程
更多
相关电子书
更多
JAVA开发手册1.5.0
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
相关实验场景
更多