热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

07_java面向对象—继承

1.提高了代码复用性。2.让类与类之间产生关系。有了这关系,才有了多态的特性。1.变量当变量如果子父类中出现非私有的同名成员变量时。子类
 
1.提高了代码复用性。
2.让类与类之间产生关系。有了这关系,才有了多态的特性。


1.变量
当变量如果子父类中出现非私有的同名成员变量时。
子类要访问本类中的同名变量,用this,代表子类对象的引用。
子类要访问父类中的同名变量,用super 代表父类对象的引用,super的使用和this的使用一样。


2.函数
当子类出现与父类一模一样的函数时,父类的函数会被覆盖。
保留父类功能的定义,并修改父类功能的内容。
函数的另一种特性:重写(覆盖)
覆盖
1.子类覆盖父类,必须保证子类的权限大于等于父类。
2.静态只能覆盖静态。(开发不常见)


3.子父类中的构造函数
在对子类对象进行初始化时,父类的构造函数也会运行。
那是因为子类的构造函数默认第一行有一条隐式的语句 super();
super();会访问父类中的空参数的构造函数,而且子类中所有的构造函数第一项默认的都是super();
子类一定会去访问父类的默认构造函数,如果不想访问默认构造函数可以手动添加super();

super语句一定是定义在子类构造函数的第一行。
子类所有的构造函数,都会访问父类中空参数的构造函数。
以为子类的每一个构造函数的第一行都有一句隐式super();

 

 

 


final(最终);修饰符;修饰:类,函数,变量(成员变量和局部变量)。
1.被final修饰的类不可以被继承,为了避免被继承,被子类覆盖。
2.被final修饰的函数不可以被覆盖。
3.被final修饰的变量是一个常量只能赋值一次。可以是成员变量,也可以是局部变量。
  在描述事物是,一些数据的值是固定的,那么为了阅读性,给这些固定的值器个名字。
  而这是值不需要变化,所以加上final修饰。
  常量的书写规范,所有字母大写,如果由多个字母组成格式为: 单词_单词
4.内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。

例子:
public static final  PAI =   3.14;   //加上静态可以让这个类常量被多个函数使用。
                                             //类常量不能定义于main主函数中。



 
 
abstract(抽象);修饰符;修饰:类,函数
当多个类中出项相同功能定义,当时功能主体不同。
这时可以向上抽取。这时,只抽取功能定义,不抽取功能主体。


抽象类(就是需求,定义一些简单的需求,让子类来具体实现该需求的主要功能)
1.抽象方法一定要定义在抽象类中。
2.抽象方法和抽象类都必须被abstract修饰。
3.抽象类不可以用new创建对象。因为抽象方法没有意义。
   如果抽象类中不定抽象方法,这样做仅仅是不让该类建立对象。    
4.子类必须复写父类中所有的抽象方法后,才可以建立对象。
   也就是说抽象类一定会被复写,强迫子类复写。

 

 

 
 
接口:初期理解,可以认为是一个特殊的抽象类。
       当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。

接口是对外暴露的规则
接口是程序的功能扩展
接口可以用来多实现
接口与接口可以继承
类与接口是实现关系,而且类继承类的同时可以实现多接口。


interface(接口):定义接口
1.接口中常见定义:常量,抽象方法。
2.接口中的成员都是用public修饰的。
3.接口中的成员都有固定修饰符。
  常量:public static final
  方法:public abstract
4.接口是不可以创建对象的,需要子类覆盖接口中所有的抽象方法,子类才可以实例化,否则子类还是一个抽象类。

implements(实现):衔接类与接口,接口与接口

 

 

 


 


推荐阅读
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 本文介绍了Java中Hashtable的clear()方法,该方法用于清除和移除指定Hashtable中的所有键。通过示例程序演示了clear()方法的使用。 ... [详细]
  • 重入锁(ReentrantLock)学习及实现原理
    本文介绍了重入锁(ReentrantLock)的学习及实现原理。在学习synchronized的基础上,重入锁提供了更多的灵活性和功能。文章详细介绍了重入锁的特性、使用方法和实现原理,并提供了类图和测试代码供读者参考。重入锁支持重入和公平与非公平两种实现方式,通过对比和分析,读者可以更好地理解和应用重入锁。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了在Java中gt、gtgt、gtgtgt和lt之间的区别。通过解释符号的含义和使用例子,帮助读者理解这些符号在二进制表示和移位操作中的作用。同时,文章还提到了负数的补码表示和移位操作的限制。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
author-avatar
kg810219_447
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有