继承关系下构造方法的访问特点注意:把this()访问本类其他成员方法也加进去

目录

前言

一、继承是什么?设置继承关系有什么好处?

1、关键字 (extends)

2.构造方法

3.子类调用父类的构造方法

总结



前言

要说继承关系下构造方法的访问特点,首先要知道继承的意义,Java为社么要继承?构造方法怎么访问?通过什么方式继承?关键字是什么?


提示:以下是本篇文章正文内容,下面案例可供参考

一、继承是什么?设置继承关系有什么好处?

        继承是面向对象三大特征之一。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。子类可以直接调用父类中非private修饰的变量或者方法。

         好处:共性抽取(多个类中相同的代码),提高代码的复用性

1、关键字 (extends)

public class Test01 extends Person{

//class 类关键字,extends 继承关键字,Person 要继承的父类


}

2.构造方法

设置构造方法

public class Student {
//创建Student类,设置无参的构造方法
public Student() {
		
		// TODO Auto-generated constructor stub
	}
}

3.子类调用父类的构造方法

关键字:super

提到super,在这里我简单的介绍以下super和this关键字的区别,这是我在学习中,老师为我们总结的二者的区别:

superthis   
super可以调用父类中的成员变量this可以调用本类中的成员变量
super可以调用父类中的成员方法this可以调用本类中的成员方法
super()调用父类的无参构造方法

this()调用本类的无参构造方法

super()和this()不能同时出现,因为它们需要被写在构造方法的第一行

        总结一下:

        继承关系下构造方法的访问特点:
         *             a:在子类的构造方法中,如果没有显示的写super(参数),则默认赠送一个super();
         *             b:如果显示的写了一个super(参数),则不再赠送
         *             c:super(参数),必须是第一个语句 
         *             
         *             在创建子类对象的时候,一定会调用父类的某个构造方法。

                需要注意的是this()不可以递归调用有参和无参构造方法,另外我们可以看到如果使用快捷方法创建父类构造时,工具会自动生成一个super(),实质是在引用顶级父类的Object父类对象

public class Fu {
	public int a = 10;
	public void method() {
		System.out.println("Fu.method()");
	}
	
	public Fu() {
		System.out.println("Fu.Fu()");
	}
	public Fu(int a) {
		System.out.println("Fu.Fu(int a)");
	}
}

public class Zi extends Fu{
	public int a = 20;
	public void method() {
		System.out.println("Zi.method()");
	}
	//构造方法
	public Zi() {
		//super();//调用父类的无参数的构造方法
		super(10);
		System.out.println("Zi.zi()");
	}
}
public class Test01 {
	public static void main(String[] args) {
		Zi zi = new Zi();		
		System.out.println(zi.a);
		zi.method();
		
		new Zi();
	}
}

运行结果:

Fu.Fu(int a)
Zi.zi()
20
Zi.method()
Fu.Fu(int a)
Zi.zi()


总结

以上就是我对继承关系下构造方法访问的特点,Java继承是单继承多级继承,所以只要熟练的掌握了继承的访问特点,知道变量或者方法的调用又来,从哪来,要被谁调用,就会很少迷路,继承也为多态的实现奠定了基础。

  • 14
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值