`
Kslsi
  • 浏览: 23495 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

对于类的继承的小小理解

    博客分类:
  • java
 
阅读更多

        第六节课,我们学习了类的继承、接口和抽象类,通过初步的学习,也大概了解了他们的用法和作用。

 

一、继承
      1.定义及简介:
          继承是从已经存在的类中创建新类的机制,我们可以通过继承实现代码复用,通过学习,我们知道,Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。继承而得到的类称为子类,被继承的称为父类。继承的关键字是extends,java类的继承是单继承。
      2.格式:
          public class 类名(子类、超类、派生类) extends 类名(父类、基类){
             }
      3.子类从父类继承和调用的规则:
          1.子类继承到了父类所有的属性和方法
          2.但调用有访问修饰符的限制:
             修饰符     调用的范围
             private     类{}中
             默认的      包中
             protected   包中和包外的子类
             public      项目中
      4.优点:
          a.因为大部分的方法属性是继承而来的,实现了代码重用,减少了代码的书写量;
          b.很容易修改和扩展已有的实现
      5.缺点:
          a.当父类的实现改变时可能要相应的对子类做出相应的改变
          b.不能再运行时改由父类继承来的实现
      6.方法重写
        a.重写的条件
                1)继承
                2)返回值数据类型、方法名、参数类型、参数个数、参数顺序必须要完全一致
                3)子类重写方法时可以扩大访问修饰符的范围(但是不能缩小)
        b.什么情况下要使用方法的重写
                当子类和父类的方法有差别时,我们就要用到方法的重写
        c.重写后方法的调用
                重写后用普通方法调用重写后的方法,因为重写后的方法将父类的方法给覆盖了,此时,如果要调用父类的方法,就要用到super关键字,格式为:super.父类的方法。
       7.自动转型
           a.条件
                必须要存在继承关系
 
           b.格式
              父类名 对象名 = new 子类名();
 
           c.好处
                  英语老师现在是给大学生教英语。那么也是可以给高中生、初中生、小学生、幼儿园学生教英语,例如:
                  teach(大学生){  study();  }
                  teach(高中生){  study();  }
                  teach(初中生){  study();  }
                  teach(小学生){  study();  }
                  teach(幼儿园学生){  study();  }
  
                  teach(学生){
                       study();
                  }
             d.在用自动转型的时候,不能直接调用子类的方法。
             e.生活中的自动转型:
                书   自然科学类的书   计算机类的书   介绍java的书:   介绍java的书是计算机类的书,计算机类的书是自然科学类的书,自然科学类的书是书,介绍java的书是书。
      8.多态:即类的多种表现方式,提供类中方法执行的多样性,比如同名不同参、子类重写父类,具体表现在覆盖和重写。

 

二、接口
     Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

     定义接口的关键字是interface

     格式
         public interface 接口名   extends 接口,... {
                    //常量
         public static final 数据类型 常量名 = 值;
  
                    //抽象方法
         public 返回值数据类型 方法名(数据类型 参数名,...);
         }

 

     注意:
          1.类去实现接口的关键字是:implements
              public class 类名 extends 类名或者抽象类 implements 接口名,... {
                    //实现(重写)父接口中所有的抽象方法
              }
        2.接口可以继承多个接口,接口不可以实例化对象
        3.接口中的常量名全部要大写

 

       接口和类的区别:接口是特殊的类,也就是接口属于类,类描述的是一个实体,包括实体的状态和实体可能发出的动作。接口则是定义了一个实体可能发出的动作。但是至少定义了这些动作的原型,没有实现,也没有任何状态信息。类是有自己的属性,而接口没有。
            
三、抽象类
          定义抽象类的关键字:abstract class 
                   格式:
                            public abstract class 抽象类名  extends 类名或者抽象类  implements 接口名,... {
 
                             //类中所有的属性和方法
  
                             //接口中的常量和抽象方法
                             public abstract 返回值数据类型 方法名(数据类型 参数名,...);
 
                            }
                 在抽象类中定义的抽象方法,是由子类去实现,而不是去覆盖,因为在父类中没有具体的实现。

       对于这节课学习的内容,比较多,而且好多概念性的问题,这得我们多多重复,好好理解,当然,敲代码这个工作是绝对必须的。
 

分享到:
评论

相关推荐

    小小画图板的开发,java课程设计源代码

    首先,我们要理解Java作为一种面向对象的编程语言,其核心概念包括类、对象、封装、继承和多态。在这个“小小画图板”项目中,我们可以预见到会创建多个类,如主程序类、图形绘制类、颜色选择类等,这些类通过相互...

    C++实验课程------小小图书馆源代码下载

    在“小小图书馆”项目中,C++的面向对象特性将被充分利用,通过定义类来封装图书信息和图书馆操作。 1. 类与对象:在C++中,类是数据和操作这些数据的函数的集合,而对象则是类的实例。在这个项目中,可能会有`Book...

    小小图书馆

    总的来说,“小小图书馆”项目涵盖了C++的基础知识和实际应用,对于学习C++编程和理解面向对象设计原则的新手来说,是一个理想的实践项目。通过这个项目,你可以深入学习C++的核心特性,同时提升文件操作和软件工程...

    Typescript中的类 类的定义 继承 类里面的修饰符Demo.zip

    本示例探讨了TypeScript中类的定义、继承以及类内部的修饰符,通过`tsdemo01`这个文件我们可以深入理解这些概念。 首先,让我们详细了解一下**类的定义**。在TypeScript中,类的定义类似于Java或C#,使用关键字`...

    java-小小计算器

    6. **类与对象**:理解类的构造函数、方法重载和继承等面向对象特性。 7. **设计模式**:尽管这是一个简单的应用,但良好的设计习惯可能会使用工厂模式或单例模式来创建Calculator对象。 8. **测试**:编写JUnit...

    php类的定义与继承用法实例

    标题“php类的定义与...理解这些概念对于掌握PHP编程至关重要,尤其是当需要构建具有复杂结构的应用程序时。通过继承,可以重用代码、扩展功能,并实现良好的代码管理和维护,这有助于提高开发效率和程序的可扩展性。

    小小电子商城

    Servlet通过继承`javax.servlet.http.HttpServlet`类并重写其`doGet`和`doPost`方法来处理HTTP请求。 2. **JSP(JavaServer Pages)**: JSP是动态网页技术,允许在HTML代码中嵌入Java代码。在本项目中,JSP主要...

    da06抽象继承封装多态接口.zip

    在编程领域,面向对象编程(OOP)是设计和实现软件的一种重要方法,它强调了类、对象、继承、封装、多态等核心概念。在Flutter框架中,这些概念同样得到了广泛的应用。Flutter是一个用于构建高性能、高保真度的移动...

    Jave开发的小小日记本源码

    7. **面向对象编程**:理解类的设计原则,如封装、继承和多态,并观察如何将这些概念应用于日记本应用的各个部分。 8. **版本控制**:尽管未明确提及,但此项目可能使用了版本控制系统(如Git),因此可以借此机会...

    JAVA的小小程序

    这些小程序可能是为了帮助开发者巩固Java语法、理解面向对象编程思想、熟悉类库使用,或者解决特定问题而编写的。在描述中提到的"JDBC简介"部分,JDBC(Java Database Connectivity)是Java语言中用来规范应用如何...

    小小坦克大战-源代码

    开发者需要熟悉Java的基本语法、类和对象的概念、继承、封装和多态等特性。 2. **Java Swing**:Swing是Java的一个图形组件库,用于创建桌面应用程序。在"小小坦克大战"中,Swing被用来创建游戏窗口、按钮、图像、...

    C#开发的小小的案例

    另一个"教师"类继承自"人"类,展示如何扩展和重写父类的功能。 3. **集合与数据结构**:C#提供了丰富的集合类型,如数组、列表(List)、队列(Queue)、栈(Stack)等。案例中可能包含如何操作这些数据结构,以及...

    继承与多态.docx

    在这个实验中,我们将深入理解这两个概念,并通过实际的动物园动物类的建模来实现它们。 继承是面向对象的一个关键特性,它允许我们创建一个新类(子类)来扩展已存在的类(父类)的功能。在Java中,我们可以使用`...

    小小画图板开发——JAVA课程设计报告.doc

    3. **提升面向对象编程能力**:利用类的继承概念,如所有图形按钮都继承自drawings类,学生能深入理解类的复用和多态性。 4. **系统设计与实现**:通过整体规划和实现绘图程序,学生能够学习到如何从头开始设计一个...

    类与对象-java实验报告

    - **Circle 类** 和 **Ellipse 类**:不直接继承 Polygon 类,因为它们不是多边形,但仍然继承自 Shape 类,拥有半径(radius)或轴长(major/minor axis)等属性。 四. 类的使用 在设计完成后,可以通过实例化...

    java编程实现小小工具

    这个项目是一个综合性的Java编程实践,涵盖了从基本语法到高级特性的诸多方面,对于提升Java编程能力和理解面向对象设计有很好的帮助。通过这个项目,学生可以学习到如何将理论知识应用到实际问题中,增强解决问题的...

    C++小小代码

    【C++小小代码】这个标题暗示我们即将探讨的是关于C++编程语言的一些基础或进阶概念。C++是一种强类型、静态类型的通用编程语言,它继承了C语言的高效性和灵活性,并加入了面向对象编程(OOP)的概念。下面,我们将...

    一个小小的JAVA多线程程序

    理解这些状态对于调试和优化多线程程序至关重要。 通过分析这个“学校-学生-父母”的多线程程序,我们可以深入理解Java的并发编程概念,如何在实际场景中应用这些知识来解决复杂的问题,并提高程序的效率和响应性。...

    一个小小的hibernate学习之作

    实体类需要继承Hibernate的`Serializable`接口,并使用`@Entity`注解标记。此外,类中的属性对应数据库表的字段,可以使用`@Id`(主键)、`@GeneratedValue`(自增策略)、`@Column`等注解来指定。 在Hibernate中,...

    asp.net 实现在小小网络系统

    通过继承`DbContext`类并添加`DbSet<Student>`属性,我们可以轻松地添加、查询、更新和删除学生数据。 接下来是控制器的实现。控制器接收来自视图的请求,处理业务逻辑,并将结果返回给视图。例如,我们可以创建一...

Global site tag (gtag.js) - Google Analytics