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

继承

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

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

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

super


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

父类


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

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中super关键字


下一篇:重写与super