`
l4432848
  • 浏览: 255065 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java基础——面对对象-继承

    博客分类:
  • java
 
阅读更多

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。

继承:

继承就是拥有
高效率的代码复用(在原有的代码基础上添加、升级称为新的功能)
Java只能单一继承
继承就是用有,继承了就拥有父类的一切。
继承关键字:本类 extends 父类
创建子类对象时,先创建父类对象,然后创建子类对象。
创建子类对象,先出父类后出子类,拿对象调用方法的时候永远先考虑子类方法,如果子类没有就调用父类。
重写:在继承之中,子类觉得父类方法过时或者有问题,可以在子类声明一个与父类一摸一样的方法。
Super关键字:
1.父类对象
2.选择父类构造器(必须写在构造器代码的第一行)

申请方式:
写上extends 父类 就拥有父类的一切,除了私有的属性方法。
私有的要在代码本类才可以访问。

image

例题1:
代码重复问题:
比如我们写一个游戏中的野怪类。
食人花:属性(名字、血条、攻击力)
方法(攻击、受到攻击)。
稻草人:属性(名字、血条、攻击力、行动速度)
方法(攻击、受到攻击)
鸡:属性(血条、行动速度、鸡肉品质)
方法(受到攻击)
在以上的怪物类中,我们可以发现它们拥有的属性和方法有重复的出现。
所以我们需要用到继承改善代码的重复率。

image

我们可以把野怪的共同属性和方法写在一个类中,通过继承在原有的属性和方法上进行添加属性和方法来构建出可移动、不可移动,在可移动怪物类中添加对用的属性和方法来构造怪可移动的怪物类(稻草人、僵尸)。不可移动的添加对应的属性方法构造对应的不可移动怪物类(食人树、食人花)。
继承的好处:
1.减少代码重复的问题(如果单独写稻草人、僵尸、食人花、食人树那就要一个个的重新书写,重新定制这些属性方法)
2.加快代码开发速度
3.代码结构清晰、细致。

image

例题2:
比如我们电脑的窗口,它们共同的属性(宽、高、x坐标、y坐标)
方法(改变大小、改变位置)
可以在父类的代码基础上派生出文本宽、按钮,在文本宽再派生出单行文本宽、多行文本宽。
在原有的代码基础上经过升级添加新的属性方法,创建出新的产品。
这样一来,既节省了开发时间,减少代码重复率,代码的结构清晰,细致。

image

例题3:我们创建一个手机类。
图1:先创建出手机最基本共有的属性、方法。
(打电话、响铃、接电话)

image

图2:
申请一个手机类,继承于手机1.
一旦继承就不用书写手机1的代码。
里面添加了发短信、接收接收短信。
在手机1的基础上增加新的功能成为新的产品。

image

image

图3:
在申请一个手机类,继承于手机2.
增加拨打长途电话时自动添加17951。
把之前的手机1的打电话方法重新覆盖掉。

重写:
只需要书写一个与收机1一摸一样的打电话方法就可以了。
在父类打电话方法不好用时,可以使用重写,覆盖掉父类的方法。
调用时先考虑子类,在考虑父类。(先调用手机3重新的打电话方法,没有的话才考虑父类的打电话方法)

image

image

image

Super关键字例题:
1.父类对象。
申请A、B、C类,B继承A,C继承B。
New C的话,它的调用方式是C调用B,B再调用A。
就近原则,父类是不知道有子类继承它。

image

  1. 选择父类构造器。
    申请Test1、Test2类,里面书写一个构造器,Test2 继承与Test1.
    new Test2构造器,打印的结果先出父类,再出子类。

image

image

报错原因:
图1:父类有参数构造器,应该给父类构造器传参。

image

图2:决解办法
添加super关键字,给父类传参。
Super(name);声明语句,声明使用父类有参数构造器构建对象。

image

0
0
分享到:
评论

相关推荐

    8.java学习第八章——面向对象.pdf

    Java 学习第八章——面向对象 #### 面向过程与面向对象的区别 在讨论面向过程和面向对象之前,我们先明确几个概念。编程语言根据其编程范式可以分为多种类型,其中面向过程和面向对象是最常见的两种。 **面向...

    java基础之面向对象编程

    Java是一种广泛使用的面向对象编程语言,其面向对象的特性使得代码更加模块化、易于...以上只是Java面向对象编程的基础知识概览,实际上,每个主题都包含了更深入的概念和实践技巧,需要通过不断的学习和实践来掌握。

    java面对对象课件

    - **封装**:封装是面向对象编程的核心思想之一,它指的是将对象的状态(属性)和行为(方法)组合在一个单一的实体——类中,并隐藏实现细节。 - **继承**:继承使得一个类可以从另一个类中获取属性和行为,从而...

    JAVA面向对象基础

    ### JAVA面向对象基础知识点详解 #### 一、面向对象编程语言的发展史 面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,其核心在于将现实世界中的对象及其属性和行为映射到软件系统中...

    Java面向对象精髓编程

    "Java面向对象精髓编程"这个主题深入探讨了Java的核心特性——面向对象编程。面向对象编程(Object-Oriented Programming, OOP)是现代软件开发中的重要概念,它通过将数据和操作数据的方法封装在对象中,提高了代码...

    Java面向对象程序设计

    在Java中,面向对象的三大核心概念是封装、继承和多态。封装允许我们将数据和操作数据的方法捆绑在一起,形成一个独立的实体——类。继承则让子类可以从父类那里继承属性和方法,减少代码重复。多态则是指同一种行为...

    115个Java面试题和答案——终极列表

    Java面试题是每个Java开发者在求职过程中必须面对的挑战,涵盖范围广泛,从基础概念到高级特性和设计模式。这份终极列表包含115个Java面试题和答案,旨在帮助求职者全面准备,以期在面试中表现出色。以下是部分核心...

    课程代码:JAVA-PL)JAVA程序设计课程讲义-打印版本(不含图形)

    首先,Java作为一种面向对象的编程语言,其核心理念在于封装、继承和多态。封装是将数据和操作数据的方法绑定在一起来形成独立的单元;继承则允许新创建的类继承已有类的属性和行为;多态性意味着同一个方法可以有...

    程序员面试宝典-java-interview-dictionary-master.zip

    1. Java语言特性:包括面向对象编程的基本概念,封装、继承、多态的理解与应用,以及Java8及以后的新特性,如Lambda表达式、Stream API等。 2. 数据类型与变量:深入理解基本数据类型与引用数据类型,以及变量的作用...

    Java 面对对象工程练习 图书馆系统+程序.zip

    《Java面向对象工程实践——构建图书馆系统》 Java是一种广泛使用的面向对象编程语言,它的设计理念是“一切皆对象”,这使得它在处理复杂系统时表现出强大的能力。本实践项目将带你深入理解Java的面向对象特性,并...

    JAVA高手真经(基础篇)

    《JAVA高手真经(基础篇)》是一本深入浅出的JAVA编程学习指南,它针对初学者和进阶者提供了全面而扎实的JAVA基础知识。这本书的内容涵盖了JAVA语言的核心概念、语法以及开发实践中不可或缺的技巧,旨在帮助读者快速...

    臧圩人--JAVA面试题解惑系列合集.pdf

    **1.2 JAVA面试题解惑系列(二)——到底创建了几个String对象?** - **知识点**:探讨Java中String对象的创建机制,特别是常量池的概念和String对象的内存分配策略。了解字符串字面量与`new String()`的区别,以及...

    Java实习周记

    - **类之间的关系**:理解关联、聚合、继承、实现及多态等概念,是Java开发的基础。 - **数据类型**:掌握整数型、浮点型、字符型和布尔型等基本数据类型的使用方式。 - **逻辑与循环语句**:熟悉`if`、`for`、`...

    大学复习资料-c++面对对象程序设计.zip

    因此,"大学复习资料-c++面对对象程序设计.zip"这个资料包将帮助学生深入学习和理解C++的面向对象编程技术,包括其核心概念、语法以及在实际编程中的应用,这对于提升编程能力,尤其是系统设计和大型项目开发能力...

    Java课程设计-坦克大战

    综上所述,本次Java课程设计——坦克大战项目,不仅为学生提供了宝贵的实践机会,加深了对Java编程语言和面向对象设计原则的理解,而且极大地提升了他们将理论知识应用于实践的能力,为未来的职业生涯奠定了一块坚实...

    java实习周记篇编程资料

    通过以上五个星期的学习与实践,不仅掌握了Java编程的基础知识,还深入了解了面向对象编程的思想与高级特性,并通过实际项目加深了对技术的理解与运用能力。这样的实习经历对于成为一名合格的Java开发者至关重要。

    java小实验

    ### Java小实验知识点详解 #### 实验1:熟悉上机环境与基础编程 ...通过这一系列的Java小实验,初学者不仅能够巩固Java基础语法,还能逐步建立起面向对象的编程思维,为进一步学习高级Java技术打下坚实的基础。

    Java笔试(超经典)时可能出现问题及其答案

    Java笔试是许多IT从业者在求职过程中必须面对的一关,它主要测试候选人的编程基础、算法理解、面向对象设计以及对Java特性的掌握程度。这份"Java笔试(超经典)时可能出现问题及其答案"资料,无疑是准备Java面试的一...

Global site tag (gtag.js) - Google Analytics