代码块和继承的知识点,this和super的区别及应用以及继承中构造方法

1.代码块

  • 概述:在java中,使用{}括起来的代码被称为代码块
  • 分类:根据其位置和声明的不同
    • 局部代码块
    • 构造代码块
    • 静态代码块
    • 同步代码块
  • 应用:
    • 局部代码块 :在方法中出现(提高内存利用率)
    • 构造代码块(初始化块):在类中方法外出现,多个构造方法中相同的代码存放在一起,每次调用都执行,是在方法前执行
    • 静态代码块:在类中方法外出现,用static修饰,用来初始化类,只执行一次
    • eg:
	public class Test {
	
	{
		System.out.println("我是代码块");
	}

	public static void main(String[] args) {
		 {
			System.out.println("我是局部代码块");
		}
		Test t=new Test();
	}
	static {
		System.out.println("我是静态代码块");
	}	
}
输出结果:
	我是静态代码块
	我是局部代码块
	我是代码块

2. 继承

  • 含义:让类与类之间产生子父类关系
  • 优劣:
    • 好处: (1)提高了代码的复用性
      (2)提高了代码的维护性
      (3)让类与类产生关系
    • 坏处:类的耦合性增强了
      耦合性:类与类之间的关系
      内聚性:自己独立完成某件事的能力
      开发原则:高内聚,低耦合
  • 特点:
    • 只支持单继承,不支持多继承

    • 子类只能继承父类非私有的成员(成员方法和变量)

    • 子类不能继承父类的构造方法,但能用super调用

       注:继承中子父类成员调用顺序 :
      1. 加载父类静态变量和静态代码块
      2.加载子类静态变量和静态代码块
      3.加载父类的成员变量成员代码块
      4.加载父类的方法
      5.加载子类的成员变量成员代码块 
      6.加载子类的方法    
      

3. this和super的区别和应用

  • 特点:
    • this:代表当前对象的引用
    • super:代表父类方法的引用
  • 使用区别:
    • 调用成员变量:
      • this.成员变量 可以调用本类的成员变量,以及父类的成员变量 ,主要用来调用本类的
      • super.成员变量,用于调用父类的
    • 调用构造方法
      • this(…)调用本类的
      • super(…)调用父类的
    • 调用成员方法
      • this.成员方法 调用子类的,也可调用父类的
      • super.成员方法 调用父类的

4.构造方法

  • 特点:子类中所有的构造方法默认会访问父类的空参数构造方法
  • 注意:super(…)this(…)必须出现在构造方法的第一句
  • eg:
	public static void main(String[] args) {
		Y y = new Y();
	}
}
class X {
    int a,b;
	static Z z=new Z();
	static {
		System.out.println("X的静态代码块");
	}
	public X() {
		System.out.println("X的无参构造器");
	}	
	public X(int a){
		System.out.println("X的一参构造器");
	}
	public X(int a,int b){
		this(9);
		System.out.println("X的两参构造器");
	}
}
class Y extends X{
	static {
		System.out.println("Y的静态代码块");
	}
	public Y() {
		super(3,5);
		System.out.println("Y的无参构造器");
		
	}
}

class Z{
	public Z() {
		System.out.println("Z的无参构造器");
	}    
	输出结果:
	Z的无参构造器
	X的静态代码块
	Y的静态代码块
	x的无参构造器
	X的一参构造器
	X的两参构造器
	Y的无参构造器

5.继承中的方法重写

  • 含义:子父类出现一样的方法
  • 应用:当子类需要父类的功能,而功能主体子类有自己特有内容时,重写父类方法
  • 特点:
    • 父类私有方法不能被重写
    • 访问权限一致
    • 父类为静态方法,子类也必须为静态
    • 子类和父类声明一样
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值