JAVA语言中“继承”的解释及使用

简介: JAVA语言中“继承”的解释及使用

前言

      一说到继承,往往想到,子嗣继承长辈的家产。长辈的家产一分不少的继承给子嗣,子嗣又有额外的财富,额外的财富变成了家产的一部分,就这样一代代的继承,家族的财富越滚越大。java中“继承”的使用也是一样的。

一、继承是什么?

       继承,是一种类与类之间的传承关系,父类的属性和方法都会传承给子类,子类可以直接调用,根据需要,补充新的属性和方法,或者复写父类的属性和方法。

       父类:类似于父亲的存在。                子类:类似于儿子的存在。

       复写:指在子类中更改父类的属性和方法(父类中使用,仍是未更改的属性方法,但从子类开始,调用的都是更改过的)

//子类:我做了一个违背祖宗的决定

 注:一个子类只继承一个父类的属性和方法,吕布认贼作父的手段在java中是不适用的。

只能B类继承A类,C类继承B类,像一个家族一样,世世代代继承下来。

二、使用方法

1.关键字

       (1)extends 关键字:子类继承父类的属性和方法

                       语法: Chlid extends Parents

public class Child extends Parents{    
    //Child类继承Parents类的属性和方法
    ......
}

 (2)super 关键字:解决子类复写父类方法,无法调用父类本有方法的问题

                       语法:super.property;        //调用父类原本属性

                                  super.method();      //调用父类原本方法

public class Child extends Parents{
    super();    //调用父类的全部方法
    super.action();    //调用了父类某个方法
    super.attribute;   //调用了父类某个属性
}

2.实操展示

      情景展示:企业A,生产了台式电脑,做好了出厂化代码,随着企业的做大,开拓了ipad产品,ipad出厂化代码,需要在电脑初始化代码的基础上,进行额外的删改。

               台式电脑的出厂化代码:

import java.util.Scanner;
public class computer {
  Scanner sc=new Scanner(System.in);
  String ip="ip属地:河北";
  //父类属性
  void startUp() {
    System.out.println("电脑正在开机,请稍等...");
    //父类成员方法
  }
  void openMachine() {
    System.out.println("请输入ping:");
    int ping=sc.nextInt();
    if(ping==888888) {
      System.out.println(sayHellow());
      //输出sayHellow()方法的返回值
    }else {
      System.out.println("密码错误,请重新输入");
      openMachine();
            //继续运行openMachine()方法
    }
    //父类成员方法
  }
  String sayHellow() {
    return "Welcome";   
    //父类成员方法
  }
  public static void main(String[] args) {
    computer c=new computer();
    c.startUp();
    System.out.println(c.ip);
    c.openMachine();
  }
}

输出结果:

 

   ipad的出厂化代码(继承了台式电脑的代码)

public class ipad extends computer{
   String electricQuantity="电量:20%";
   //根据实际需要,补充子类的属性
   void open5G() {
     System.out.println("提醒:已连接5G网络");
     //根据业务需要,补充子类的方法
   }
   void startUp() {
     System.out.println("ipad正在开机,请等待...");
     //复写computer父类的startUp方法
   }
   String sayHellow() {
     return super.sayHellow()+" to use ipad.";
     //调用父类原本方法,并加以改造
   }
   public static void main(String[] args) {
    ipad i=new ipad();
    i.startUp();
    //调用子类改写完父类的方法
    System.out.println(i.ip);
    //调用父类的属性
    System.out.println(i.electricQuantity);
    //调用子类的属性
    i.openMachine();
    //调用父类的方法,并且运行中的sayHellow()方法是子类改造后的方法
    i.open5G();
    //调用子类额外需要的方法
  }
}

输出结果:


总结

       以上就是本文讲的内容,本文简单介绍了继承的含义,extends关键字方便了我们快速便捷地处理类与类之间的代码调用,极大减轻了重复造轮子的压力。

相关文章
|
1月前
|
存储 人工智能 算法
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
这篇文章详细介绍了Dijkstra和Floyd算法,这两种算法分别用于解决单源和多源最短路径问题,并且提供了Java语言的实现代码。
65 3
数据结构与算法细节篇之最短路径问题:Dijkstra和Floyd算法详细描述,java语言实现。
|
7天前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
18 4
|
20天前
|
Java 开发者
在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口
【10月更文挑战第20天】在Java多线程编程中,创建线程的方法有两种:继承Thread类和实现Runnable接口。本文揭示了这两种方式的微妙差异和潜在陷阱,帮助你更好地理解和选择适合项目需求的线程创建方式。
15 3
|
20天前
|
Java
在Java多线程编程中,实现Runnable接口通常优于继承Thread类
【10月更文挑战第20天】在Java多线程编程中,实现Runnable接口通常优于继承Thread类。原因包括:1) Java只支持单继承,实现接口不受此限制;2) Runnable接口便于代码复用和线程池管理;3) 分离任务与线程,提高灵活性。因此,实现Runnable接口是更佳选择。
29 2
|
20天前
|
Java
Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口
【10月更文挑战第20天】《JAVA多线程深度解析:线程的创建之路》介绍了Java中多线程编程的基本概念和创建线程的两种主要方式:继承Thread类和实现Runnable接口。文章详细讲解了每种方式的实现方法、优缺点及适用场景,帮助读者更好地理解和掌握多线程编程技术,为复杂任务的高效处理奠定基础。
27 2
|
20天前
|
Java 开发者
Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点
【10月更文挑战第20天】Java多线程初学者指南:介绍通过继承Thread类与实现Runnable接口两种方式创建线程的方法及其优缺点,重点解析为何实现Runnable接口更具灵活性、资源共享及易于管理的优势。
27 1
|
27天前
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
41 3
|
30天前
|
移动开发 Java 大数据
深入探索Java语言的核心优势与现代应用实践
【10月更文挑战第10天】深入探索Java语言的核心优势与现代应用实践
46 4
|
1月前
|
Java 测试技术 编译器
Java零基础-继承详解!
【10月更文挑战第4天】Java零基础教学篇,手把手实践教学!
33 2
|
1月前
|
Java 编译器
在Java中,关于final、static关键字与方法的重写和继承【易错点】
在Java中,关于final、static关键字与方法的重写和继承【易错点】
21 5