7.2 继承语法

---恢复内容开始---

  在创建一个类时,这个类总是在继承(Object),因此,除非已经明确指出要从其他类进行继承,否则就是隐式的在从Java标准根Object继承。

  在继承过程中,需要先声明"新类与旧类相似",新类extends旧类,当这么做时,会自动获取基类中的所有方法和字段。

示例:

  

  为了继承,一般情况下,都是将所有成员变量全部定义为private,将所有方法全部定义为public

  由于Detergent是由关键字extends从Cleanser导出的,所以它可以在Detergent中自动获得这些

方法。因此可以将继承看做对类的复用。

  正如上面scrub()方法中,使用基类的方法以及对它进行修改是可行的。但是如果想要在scrub()中

再次调用父类的scrub(),是做不到的,这样就会产生递归。所以这里可以使用super关键字,进行父类

方法的调用。

  在继承中,并不是一定要使用基类的方法,也可以为子类进行增加方法,比如上面的foam(),在Detergent

中,Detergent对象除了可以调用父类中所有的方法,也可以调用子类中的foam()方法

  初始化父类

    从外部看来,子类其实就是一个与父类具有相同方法的新类,或许还会有一些额外的方法和字段。但继承并不是直接复制父类的方法。当创建一个子类对象时,该对象包

   含了一个父类的子对象,这个子对象与用父类直接创建对象是一样的。二者之间的区别就是后者来自于外部,前者则是被包装进子类对象中。

时间: 2024-10-10 22:36:44

7.2 继承语法的相关文章

JAVA代码重用机制复用类之继承语法(附源码)

前言 继承是所有OOP语言和Java语言不可缺少的组成部分.当创建一个类时,总是在继承,因此,除非已明确指出要从其他类中继承,否则就是在隐式地从Java的标准根类Object进行继承. 组合的语法比较平实,但是继承使用的是一种特殊语法.在继承过程中,需要先声明"新类与旧类相似".这种声明是通过在类主体的左边花括号之前,书写后面紧随基类名称的关键字extends而实现的.当这么做时,会自动得到基类中所有的域和方法.例如: 示例源码 基类 package com.mufeng.thesev

第七章-复用类-继承语法-1

练习2: 从Detergent 中 继承产生一个新的类.覆盖scrub() 并添加一个名为sterilize() 的新的方法. 一:我的答案: 1 package com.learnJava.test; 2 3 /** 4 * @Author zhuchangli 5 * @Date 2019/9/14 6 **/ 7 class Cleanser{ 8 private String s = "Cleanser"; 9 public void append(String a) { s

第七章-复用类-继承语法-2初始化基类-带参构造器

书上代码示例: 1 package com.learnJava.test; 2 3 /** 4 * @Author zhuchangli 5 * @Date 2019/9/14 6 **/ 7 class Game{ 8 Game(int i){ 9 System.out.println("Game constructor"); 10 } 11 } 12 13 class BoardGame extends Game{ 14 BoardGame(int i){ 15 super(i);

继承语法含有main()方法

package me.ybleeho; class Cleanser{ //清洁剂 private String s="Cleanser"; public void append(String a){s+=a;} public void dilute(){append("dilute");} //稀释 public void apply(){append("apply()");} //应用 public void scrub(){append(&

转 python语法学习面向对象之继承

传送门 python语法学习面向对象之继承 只要涉及到面向对象,”类“是必须出现的一个代名词. 类和对象是面向对象编程的两个主要方面.类创建一个新类型,而对象是这个类的实例. 类的一些概念: 包括初始化方法__init__,可以理解为构造,self,理解为this,等等在前一篇文章中介绍过,现在就学习类的继承. 继承: 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制.继承完全可以理解成类之间的类型和子类型关系. 需要注意的地方:继承语法   class 派生类

【ES6】更易于继承的类语法

和其它面向对象编程语言一样,ES6 正式定义了 class 类以及 extend 继承语法糖,并且支持静态.派生.抽象.迭代.单例等,而且根据 ES6 的新特性衍生出很多有趣的用法. 一.类的基本定义 基本所有面向对象的语言都支持类的封装与继承,那什么是类? 类是面向对象程序设计的基础,包含数据封装.数据操作以及传递消息的函数.类的实例称为对象. ES5 之前通过函数来模拟类的实现如下: // 构造函数 function Person(name) { this.name = name; } //

ES6入门六:class的基本语法、继承、私有与静态属性、修饰器

基本语法 继承 私有属性与方法.静态属性与方法 修饰器(Decorator) 一.基本语法 1 class Grammar{ 2 constructor(name,age){ //定义对象自身的方法和属性 3 this.name = name, 4 this.age = age 5 } 6 // 在原型上定义只读属性 7 get inva(){ 8 return "JS"; 9 } 10 //在原型上定义可读写属性 11 set skill(val){ 12 this._skill =

C# 基础知识复习(十)---接口与接口继承

1.接口必须I开头: 2.只有申明,没有实现: 3.实现类在实现方法时,必须名字与接口一致: 4.实现类在实现继承接口时,必须把父接口的方法一并实现: 5.接口申明,默认是public的,这一点与class不同. C# 接口(Interface) 接口定义了所有类继承接口时应遵循的语法合同.接口定义了语法合同 "是什么" 部分,派生类定义了语法合同 "怎么做" 部分. 接口定义了属性.方法和事件,这些都是接口的成员.接口只包含了成员的声明.成员的定义是派生类的责任.

[转] Java程序员学C#基本语法两个小时搞定(对比学习)

Java程序员学C#基本语法两个小时搞定(对比学习) 对于学习一门新的语言,关键是学习新语言和以前掌握的语言的区别,但是也不要让以前语言的东西,固定了自己的思维模式,多看一下新的语言的编程思想. 1.引包 using System;java用import2.构造函数和java语法相同3.析构函数  变量和类的对象都有生命周期,生命周期结束,这些变量和对象就要被撤销.  类的对象被撤销时,将自动调用析构函数.一些善后工作可放在析构函数中完成.  析构函数的名字为~类名,无返回类型,也无参数.Per