`
Kslsi
  • 浏览: 22570 次
  • 性别: 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 返回值数据类型 方法名(数据类型 参数名,...);
 
                            }
                 在抽象类中定义的抽象方法,是由子类去实现,而不是去覆盖,因为在父类中没有具体的实现。

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

分享到:
评论

相关推荐

    继承与多态.docx

    1) 设计类之间的继承关系 2) 在子类重写从父类继承的方法 3) 理解什么是多态 4) 掌握继承的设计技巧 实验内容 对某动物园的动物进行面向对象建模,需要利用面向对象中的继承和多态来设计类。 动物园包括的动物、...

    Get清风2048小游戏-Java-课程设计报告书.docx

    在计算机语言中,面向对象的类一般具有三个根本特性:封装性、继承性和多态性,这三种特性进一步简化了Java求解模型,提高了程序的复用性,节省了程序的代码量,从而提高了软件的生产率。 〔2〕java技术分析 Get...

    基于 Java 程序设计语言中一维数组的应用

    重继承等概念。特别是 Java 语言使用引用代替指针,程 序设计者只需理解一些基本的概念,就可以用它编写出 适用于各种情况的应用程序。也是目前各个高校电子信 息大类首选的一门专业必修课,针对高职院校《Java 程 ...

    Accelerated C++ PDF 中英文版

    我们要衷心地感谢本书的审稿人,他们审阅了我们的多份书稿,帮助我们对本书进行了无数大大小小的修改。他们是Paul Abrahams、Michael Ball、Mary Dageforde、Paul DuBois、Matt Greenwood、Matthew P. Johnson、...

    Accelerated C++源代码

    我们要衷心地感谢本书的审稿人,他们审阅了我们的多份书稿,帮助我们对本书进行了无数大大小小的修改。他们是Paul Abrahams、Michael Ball、Mary Dageforde、Paul DuBois、Matt Greenwood、Matthew P. Johnson、...

    新版Android开发教程.rar

    开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量已经达到了 43 家。 移动手机联盟创始成员: Aplix 、 Ascender 、 Audience 、 Broadcom 、中国移动、 eBay 、 Esmertec 、谷歌、...

    Java核心技术精讲

    详细介绍包名、类名、接口、继承、修饰符等内容; 深入理解List、Map、Set的实现机制以及原理 深入理解泛型的原理以及在日常工作中应该如何使用 为什么需要学习这门课程? Java是后端热度最高的语言,而许多JAVA...

    Log4j日志管理系统简单使用说明

    Log4j有三个主要的组件:Loggers,Appenders和Layouts,这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松的记录信息的类型和级别,并可以在运行时控制日志输出的样式和...

    你必须知道的495个C语言问题

    *2.5 在C语言中是否有模拟继承等面向对象程序设计特性的好方法? 2.6 为什么声明externf(structx*p);给我报了一个晦涩难懂的警告信息? 2.7 我遇到这样声明结构的代码:structname{intnamelen;charnamestr[1];}...

    《你必须知道的495个C语言问题》

    *2.5 在C语言中是否有模拟继承等面向对象程序设计特性的好方法? 22 2.6 为什么声明extern f(struct x *p); 给我报了一个晦涩难懂的警告信息? 23 2.7 我遇到这样声明结构的代码:struct name {int namelen; ...

Global site tag (gtag.js) - Google Analytics