ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java面向对象之什么是继承?

2021-10-04 11:02:25  阅读:170  来源: 互联网

标签:Java 构造方法 继承 子类 public 面向对象 父类 super 本类


继承

  • 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模。
  • extends的意思是“扩展”。子类是父类的扩展。
  • Java中类只有单继承,没有多继承!即 一个儿子只能有一个爸爸,但是一个爸爸可以有多个儿子
  • 继承是类与类之间的一种关系。除此之外,类和类之间的关系还有依赖、组合、聚合等。
  • 继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示。
  • 子类和父类之间,从意义上讲应该具有“is a”的关系。
  • 私有的东西无法被继承
  • object类
  • super
  • 方法重写
- 继承是多态的前提,如果没有继承,就没有多态。
- 继承主要解决的问题就是:共性抽取。
- 继承关系当中的特点:
1、子类可以拥有父类的“内容”。
2、子类还可以拥有自己专有的内容。

- 定义父类的格式:(一个普通的类定义)
public class 父类名称{
	//.....
}

- 定义子类的格式:
public class 子类名称 extends 父类名称{
	//.....
	
}

super


image

父类


image

super注意点:

  • super调用父类的构造方法,必须在构造方法的第一个
  • super 必须只能出现在子类的方法或者构造方法中
  • super 和 this 不能同时调用构造方法!

this 与 super 的不同

  • 代表的对象不同:
    1、this:本身调用者这个对象,访问本类内容。
    2、super:代表父类对象的应用,访问父类内容。
    前提:this:没有继承也可以使用;super:只能在继承条件下才可以使用
  • 构造方法
    1、this();本类的构造
    2、super();父类的构造

this的典型三种用法:

package OOP.Demo06;
/*
* super关键字用来访问父类内容,而this关键字用来访问本类的内容。用法有三种:
* 1、在本类的成员方法中,访问本类的成员变量。
* 2、在本类的成员方法中,访问本类的另一个成员方法。
* 3、在本类的构造方法中,访问本类的另一个构造方法。
* 在第三种方法中要注意:
* A、this(...)调用必须是构造方法的第一个语句,唯一一个。
* B、super和this两种构造调用,不能同时使用。
* */
public class Zi extends Fu{
    int num = 20;
    public Zi(){
        this(123); //本类的无参构造,调用本类的有参构造
//        this(1,2); //错误写法。必须是构造方法的第一个语句
    }
    public Zi(int n){
    }
    public Zi(int n,int m){
    }
    public void showNum(){
        int num = 10;
        System.out.println(num);//10,局部变量
        System.out.println(this.num);//20,本类中的成员变量
        System.out.println(super.num);//30,父类中的成员变量
    }
    public void methodA(){
        System.out.println("AAA");
    }
    public void methodB(){
        this.methodA();//在本类的成员方法中,访问本类的另一个成员方法。
        System.out.println("BBB");
    }
}

黑暗是现实,共舞是选择。

标签:Java,构造方法,继承,子类,public,面向对象,父类,super,本类
来源: https://www.cnblogs.com/TheOnlyGrace/p/15365526.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有