`

Java入门总结-----类的继承和接口

阅读更多
                               类的继承和接口
1.编写程序过程中,为什么要使用类的继承?
   1)提高代码的重用性
   2)提高程序的扩展性
   举个例子:  你写了一个学生类,声明了名字、性别等属性以及学习等方法
   public class Student{
      private  String  name;
      private  String  sex;
      ...
      public void study(){...}
      ...
  }
  现在你要写一个大学生类,也包含了名字、性别等属性以及学习等方法,那么你就可以通过继承Student类来避免再次写重复的代码
  public class UNStudent extends Student{
     private String major;
     public void play(){...}
  }
  而且,你可以在子类中定义父类没有的属性和方法,也就是提高了代码的扩展性

2.继承的语法格式
  Java继承的关键字是:extends
  格式:
  public class 子类名  extends 父类名{}

3.子类继承父类后,子类从父类中继承到了那些属性和方法?又能调用那些属性和方法?
  1)首先,子类继承父类后,子类是能继承到父类所有的方法和属性的。
  2)那么,子类能调用父类所有的方法和属性吗?

     (1)如果子类和父类在同一个包目录下:
            只有声明为:private 的方法和属性是不能调用的
            也就是说,能调用的有:public  protected  以及默认的方法和属性

     (2)如果子类和父类不在同一个包目录下:      
            能调用的方法和属性:public  protected
            不能调用的方法和属性:默认的  private
            特别地,如果调用发生时,不是在子类中,而是在其他地方(比如主函数或其他类中),那么只有public的方法和属性才能调用。

4.方法的重写
  1)程序编写过程中为什么要用到方法重写?
        当子类继承了父类的某个方法,但这个方法在子类中又要与父类有不同的表现时(比如说,一个大学生类UNStudent继承了学生类Student的学习study()方法,但是大学生的学习方法又与一般的高中生、初中生不同),那么就需要用到方法的重写。
  
  2)方法重写的条件:
     (1)必须要有继承关系。也就是说方法的重写只会发生在继承了父类的子类中
     (2)子类中重写的方法与父类中被重写的方法相比:返回值类型,方法名,参数列表(参数个数,参数类型,参数顺序)必须要完全一致。
 
  3)方法重写的调用
     1)必须是子类的对象
     2)优先调用子类的方法,如果子类中没有重写,才会调用父类的方法。

5.自动转型
      所谓自动转型就是指在继承关系中,所有的子类对象,自动的也都是父类类型。例如:某个具体的一个大学生,他除了是大学生,也可以被称之为学生;而一个学生,不一定是大学生,也可以是小学生或者中学生等等。大学生(子类对象)是学生(父类类型),反之则不成立。

      使用自动转型,会遇到一个小问题:无法调用子类的方法(父类中没有的方法,也就是不是重写的方法)。这是由Java的编译机制引起的:在使用自动转型时,Java编译只会根据对象名的类型去检索对对应的方法名,因为父类中没有该方法,因而检索不到而报错!
      解决办法:  在父类中定义一个空方法,使之成为重写就ok了。

      自动转型的使用: 一般是作为方法的参数,如果参数的类型为父类类型,那么该方法就可以接受所有子类的对象参数。

6.多态
  所谓多态,是指相同类型(比如子类自动转型成为父类类型)的对象调用相同的方法的时候,由于继承和重写的机制,得到不同的结果。

7.接口
  定义接口的关键字是: interface
  格式:
  public interface 接口名 extends 接口名,...{
    //定义常量
    public static final 数据类型  常量名 = 值;
    ...
    //定义抽象方法
    public 返回值类型 方法名 (参数类型 参数名,...);
    ...
  }
 
  定义类实现接口,关键字:implements
  实现格式:
  public class 类名 implements 接口名,...{
 
  //必须实现接口中所有的抽象方法

  }

类个接口的区别:
1)关键字:类的定义关键字为 class,接口的关键字为 interface;
2)继承:类只能有一个继承父类,为单继承;接口可以继承多个接口,为多继承;
3)属性:类中可以定义各种属性,包括定义常量;接口只能定义常量属性;
4)方法:类中定义的方法必须实现;接口中只能定义抽象方法,必须不实现;
5)子类:父类的子类可以重写父类的方法,也可以不重写;继承了接口的类,必须重写实现接口的所有抽象方法;
6)对象:类可以实例化对象;接口不能实例化对象。

8.抽象类
  定义的关键字:abstract class
  格式:
  public abstract class 抽象类名 extends 类名或抽象类名 implements 接口名,...{
    
     // 和类一样定义属性和方法
     // 和接口一样定义常量和抽象方法,格式稍有不同
     public abstract 返回值类型 方法名(参数类型 参数名,...);

  }
  继承了抽象类的子类,如果父类定义了抽象方法,必须重写实现至少一个抽象类方法。
  抽象类是介于类和接口之间的一个特殊类。











0
3
分享到:
评论

相关推荐

    java入门基础-继承及多态

    ### Java入门基础:继承及多态 #### 一、继承 继承是面向对象编程(OOP)的一个核心概念,它允许创建一个新类(称为子类或派生类),该类继承了现有类(称为父类或基类)的特征。在Java中,一个类可以从另一个类继承...

    JAVA入门-接口-语法

    ### JAVA入门-接口-语法 #### Java语言接口与继承的本质及语法详解 在Java编程语言中,接口(Interface)和继承(Inheritance)是面向对象编程的重要组成部分,它们各自承担着不同的职责,并为程序设计提供了灵活...

    Java基础入门--教学课件--PPT

    - **数据类型**:Java有两大类数据类型,基本类型(如int、char、boolean)和引用类型(如类、接口和数组)。 - **变量**:存储数据的地方,声明时需指定数据类型。 - **运算符**:包括算术运算符、比较运算符、...

    java 初学入门--think in java

    Java初学入门——《Think in Java》精要 在编程世界中,Java是一种广泛应用的面向对象的编程语言,尤其在企业级应用开发中占据主导地位。对于初学者来说,掌握Java的基本概念和语法是至关重要的。《Think in Java》...

    Java入门教程-微学苑-part-all

    初学者通过微学苑提供的Java入门教程,可以系统学习Java语言的基础知识和编程技巧,为后续的深入学习打下坚实的基础。 Java概述部分首先介绍了Java语言的发展历史,包括Java虚拟机(JVM)的概念以及跨平台的工作...

    JAVA电子教案------入门级java学习资料

    这份“JAVA电子教案------入门级java学习资料”是为初学者精心准备的学习资源,旨在帮助那些刚开始接触Java的人快速理解其基本概念和语法。 在Java的世界里,首先要了解的是它的三大特性:封装、继承和多态。封装是...

    java的入门指南------

    这些只是Java入门学习的一些基础概念,随着对Java的深入学习,还会涉及更多高级主题,如设计模式、Spring框架、数据库连接、网络编程等。对于初学者来说,掌握这些基本概念并实践编写简单的Java程序是至关重要的。

    学习Java程序入门-面向对象之封装,继承,多态(下).docx

    总结来说,Java中的继承机制使得我们可以创建具有层次结构的类,并在子类中复用父类的代码。通过方法覆盖,我们可以根据需要定制行为,而多态则允许我们编写更加灵活和可扩展的代码。这些特性共同构成了Java面向对象...

    Java 2入门教程--Java

    Java支持单一继承,即一个类只能直接继承一个父类,但可以通过接口实现多重继承的效果。多态性是面向对象的重要特性,允许子类对象替换父类对象,保持代码的灵活性和可扩展性。 九、异常处理 Java通过try-catch-...

    完整版Java全套入门培训课件 Java基础 04-继承上(共8页).rar

    综上所述,"Java基础 04-继承上"的课程将涵盖这些关键点,帮助初学者理解如何在Java中使用继承来构建类之间的关系,以及如何利用多态和接口来增强代码的灵活性。这个8页的PPTX文件很可能会深入探讨这些概念,并通过...

    完整版Java全套入门培训课件 Java基础 04-继承下(共28页).pptx

    Java编程语言中的继承是面向对象设计的一个核心特性,它允许创建一个类(子类)从另一个类(父类)继承属性和方法。本篇培训课件主要探讨了继承的下半部分,聚焦在抽象类和接口这两个重要概念。 **抽象类**在Java中...

    JAVA轻松入门-初学者教程

    - **面向对象**:JAVA是一种面向对象的语言,支持类、接口和继承等面向对象特性。 - **自动内存管理**:JAVA具有垃圾回收机制,程序员无需手动释放内存。 - **安全性**:JAVA设计时考虑了安全性,例如防止内存...

    零基础Java入门课程-抽象类和接口

    在Java编程语言中,抽象类和接口是两个重要的概念,它们在软件设计中扮演着核心角色,尤其...文档“零基础Java入门课程-抽象类和接口-20201211214017966.docx”可能包含了更详细的讲解和示例,建议仔细阅读以加深理解。

    Java入门经典课件-Java入门经典课件

    下面,我们将深入探讨Java入门的一些核心概念和知识点。 1. **Java环境配置**:在开始学习Java之前,首先需要在计算机上安装Java Development Kit (JDK),并配置好环境变量,包括`JAVA_HOME`,`PATH`和`CLASSPATH`...

    java初级ppt--大学入门教程

    这份"java初级ppt--大学入门教程"是专为初学者设计的教育资源,旨在帮助学生快速掌握Java编程的基础概念和技能。以下将详细介绍这个教程可能包含的一些核心知识点: 1. **Java简介**:讲解Java的历史、特点和应用...

    JAVA经典入门教程-JAVA应该这样学

    理解类的定义、对象的创建、封装、继承和多态等概念,能让你编写出更具有复用性和扩展性的代码。同时,掌握接口和抽象类的区别也是关键。 接下来,熟悉Java集合框架,包括数组列表、链表、队列、栈、映射(HashMap...

    完整版Java全套入门培训课件 Java基础 01-Java概述(共31页).rar

    这份"完整版Java全套入门培训课件 Java基础 01-Java概述(共31页)"为初学者提供了一个全面的起点,深入理解Java的核心概念。下面我们将详细探讨其中可能涵盖的知识点。 1. **Java起源与特性** - Java由James ...

    java从入门到精通--实例

    6. **多线程**:Java支持并发编程,理解Thread类和Runnable接口,以及同步机制(synchronized关键字、Lock接口等)对于构建多任务应用至关重要。 7. **I/O流**:Java的IO流处理允许程序进行数据的输入输出,包括...

Global site tag (gtag.js) - Google Analytics