继承

继承

extends关键词
形式:

public class person{类体}
public Student extends person{类体}

组合

把一个类作为另一个类的成员,即完成了组合

继承的作用

如果有两个类的耦合度非常高,重复定义类似的类就会导致代码非常臃肿
而如果能在两个不同的类中找到其共同点和不同点,使用一个相同的类把共同点抽象成一个类,再把相同点继承下来,(不严谨的说)不同点再分别抽象导入,就能大大减少代码的重复度。

继承的类型

图片转自https://www.runoob.com/java/java-inheritance.html在这里插入图片描述
与C++不同的是:

  • java中没有共有继承和私有继承等概念,所有继承都是public继承。
  • java中不存在多继承(除非用implement)

super关键字

用super关键字来访问父类,与this有些类似,但这样的比较并不恰当,super不是一个对象的引用,不能将super赋给另一个对象变量,他只是用来调用父类方法的关键字

构造器

在生成子类对象时,会先调用父类的构造器,再调用子类的构造器。并且父类的构造器默认在子类构造器的第一行

public class Student extends Person{
	public Student(){
		super();//父类构造器,默认被隐藏,但在执行代码时会执行。
		System.out.println("子类构造器")
	}
}

如果没有特殊说明,子类对象生成时会调用无参父类构造器。
如果想要调用有参构造则

public class Student extends Person{
	public Student(){
		super(/*参数*/);
		System.out.println("子类构造器")
	}
}

来调用有参构造。
若父类没有无参构造器,而子类的构造器中又没有对有参父类构造器的调用,则java会报错。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值