继承

什么是继承

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的属性和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

如何使用继承

继承使用

1、首先编写父类

访问修饰符 class Pet{
	//公共的属性和方法
}

2、编写子类,继承父类

访问修饰符 class Dog extends Pet{
	//子类特有的属性和方法
}

关键字extends
Java中只支持单根继承,即一个类只能有一个直接父类,但是可以有多个间接父类。(间接父类,比如父类的父类就是子类的间接父类)

何时使用继承

当两个类具有相同的特征(属性)和行为(方法)时,可以将相同的部分抽取到相同的父类中。符合is-a(dog is a pet)关系的设计使用继承,将子类共有的属性和行为放到父类中。

理解继承

子类可以继承父类什么

1、继承public和protected修饰的属性和方法,不管子类和父类是否在同一个包里。
2、继承默认权限修饰符修饰的属性和方法,但子类和父类必须在同一个包里。

子类不能继承父类什么

1、private修饰的属性和方法
2、子类和父类不在同一个包里,不能继承默认权限修饰符修饰的属性和方法
3、构造方法不能继承,但是可以在子类中调用父类的构造方法。

super关键字

super的使用

子类访问父类成员
1、访问父类属性

super.属性名;

2、访问父类方法

super.方法名();

3、访问父类构造方法

访问修饰符 子类名(无参或者参数名){
	super(); //调用父类无参构造方法super(name);//调用父类的有参构造方法
}

super的使用场景

1、子类方法重写父类方法

public class Dog{
	public void showInfo(){
		super.showInfo();//调用父类的方法
		//子类该方法中独有的功能
	}
}

2、在子类中定义了和父类同名的成员变量,super可以使被屏蔽的成员可见。访问父类的父类的成员,也用super.属性名/方法名。

使用super的注意事项

1、使用super关键字,super代表父类对象
2、super只能出现在子类的方法和构造方法中
3、super调用构造方法时,必须在第一句。
4、super不能访问父类的private成员

this和super的区别

区别thissuper
访问属性访问本类属性,如果没有则从父类找访问父类属性
访问方法访问本类方法,如果没有则从父类找访问父类中的方法
访问构造调用本类构造,放在构造方法首行调用父类构造,放在子类构造方法首行

继承条件下的构造方法

继承条件下构造方法的调用规则
1、子类构造方法没有通过super调用父类的有参构造方法,也没有通过this调用自身的其他构造方法,则系统默认调用父类的无参构造方法
2、子类构造方法通过super调用父类的有参构造方法,则执行父类相应的构造方法,而不执行父类的无参构造方法。
3、子类构造方法通过this调用自身的其他构造方法,则在相应构造方法中应用以上两条规则。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值