很基础,但是好多人不了解

<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">在这里我将说明java中的继承体系中的一个很重要的知识点,其实这个知识点困惑了我好久了,希望大家不要走我这条弯路,希望大家看了我的代码能够对java中的继承有深刻的了解</span>

1、建立了一个 抽象的Company类:

package override;

public abstract class Company {
	private String name;
	private int age;
	private double money;
	public Company(String name, int age, double money) {
		this.name = name;
		this.age = age;
		this.money = money;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public double getMoney() {
		return money;
	}
	public void setMoney(double money) {
		this.money = money;
	}
	public abstract void job();
	
}
2、建立实现Company接口的实现类员工类Employee

package override;

public class Empolyee extends Company {
	public Empolyee(String name, int age, double money) {
		super(name, age, money);
		// TODO Auto-generated constructor stub
	}

	@Override
	public void job() {
		// TODO Auto-generated method stub
		System.out.println(this.getName()+".."+super.getAge()+"..."+getMoney());//在这里我主要探讨的是这里是写this还是super?这个问题深深的困惑着我!
	}

}
3、建立一个测试类:

package override;

public class CompanyDemo {
	public static void main(String[] args) {
		Company c=new Empolyee("lisi", 12, 1500);
		c.job();
	}
}

运行结果:

lisi..12...1500.0
对于上述的结果我的疑问主要是在下面的这行
System.out.println(this.getName()+".."+super.getAge()+"..."+getMoney());//在这里我主要探讨的是这里是写this还是super?这个问题深深的困惑着
到底是this还是super呢?我们来分析一下继承关系!compan抽象类中定义了private的name,age,money,当employee类继承了company的时候实际上empoyee并没有继承private的name,age,money,但是由于父类中有带有参数的构造方法,因此需要在子类employee中super父类的构造方法(这里不是继承,因为构造方法是不能被继承的)

Company c=new Empolyee("lisi", 12, 1500);
当执行这句话的时候 这三个参数到底传递给了谁呢?因为子类中没有继承过来父类的私有属性,因此这里的参数实际上是调用子类的构造方法,而子类中的构造方法中又有super.Company的构造方法,因此这里的参数是传递给了父类。因此填写super可以理解

当是this的时候,因为父类中有get set方法 是public的 因此子类中也应该继承了父类的get set方法,因此在子类中也是有get set方法的,使用this的话实际上也是调用父类的






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值