JAVA——继承的定义和使用

我们在了解java的继承之前,首先需要知道什么是代码块。

根据代码块出现的位置以及关键字,分为以下四种代码块:

1. 普通代码块了解

定义在方法中的代码块。

2.构造块(重点)

定义在类中的代码块(不加任何修饰符)。
在对象产生时,构造块优先于构造方法执行,有几个对象产生,就调用几次构造块。
用于在构造方法执行前完成一些属性的初始化操作。

3. 静态代码块

1.非主类中的静态代码块。
在类加载时执行(啥时候用到这个类),优先于构造块执行,无论有多少对象产生,只会调用一次。

2.主类中的静态代码块。
主类中的静态块优先于主方法执行。

4. 同步代码块(多线程同步部分再议)

Java继承的定义和使用

  1. 继承的意义:在已有基础上进行功能上的扩充(可重用)。

    判断两个类之间能否使用继承:student is a person 。

    java中类继承使用extends关键字。

    子类(派生类)
    父类(超类—基类)

  2. 继承的限制

    2.2.1

    子类对象实例化前首先调用父类构造方法产生父类对象后再调用子类构造方法实例化子类对象。

    2.2.2

    java只允许单继承,不允许多继承。(Java的单继承局限)

要想在 Java中实现类似的“多继承”,要么多层继承,要么使用内部类

//多层继承
class A{...}
class B extends A{...}
class C extends B{...}
//内部类
...

2.2.3

  • 在继承时,子类会继承父类的所有结构。(包含私有域与其他属性,方法)

显示继承:所有非私有操作属于显示继承(可以直接调用)

隐式继承:所有的私有操作属于隐式继承(不可以直接调用,可以通过其他形式调用)

class A{
   public A(){
       System.out.println("1.A类的构造方法");
   }
   {
       System.out.println("2.A类的构造块"); //	构造块优先于构造方法执行,有几个对象产生,就调用几次构造块。
   }
   static{
       System.out.println("3.A类的静态块");
   }
}
 
public class B extends A{
    public B(){
        System.out.println("4.B类的构造方法");
    }
    {
        System.out.println("5.B类的构造快");
    }
    static{
        System.out.println("6.B类的静态块");//主类中的静态块优先于主方法执行。(因为B类继承A类,所以A类静态代码块先执行)
    }
    public static void main(String[] args){
      System.out.println("7.START--------------");
      new B();
      new B();
      System.out.println("8.end-------------------");
    }
}
//程序运行结果
3.A类的静态块
6.B类的静态块
7.START--------------
2.A类的构造块
1.A类的构造方法
5.B类的构造快
4.B类的构造方法
2.A类的构造块
1.A类的构造方法
5.B类的构造快
4.B类的构造方法
8.end-------------------
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值