Java面向对象:继承

Java面向对象:继承,第1张

继承

什么是继承?

Java中的继承是一个对象获取父对象的所有属性和行为的机制

使用继承的关键字:extends

子类到底继承了父类哪些内容?
1.继承了public,protected 修饰的属性和方法
2.如果子类和父类在同一个包下的话,还继承了默认修饰符修饰的内容

子类不能继承父类的情况:
1.private修饰的属性和方法
2.子类和父类不再同一个包下,不能继承默认访问权限的成员
3.不能继承构造方法

什么时候使用继承
符合is,a关系的设计时,可以考虑使用继承。
例如:小狗是一个宠物,小猫是一个宠物

在子类中调用父类的方法使用关键字:super
this和super的使用方法是一样的,this调用当前类的方法
super():调用构造方法,调用父类的构造方法,一定要位于第一行
this():调用构造方法

继承的优点
将子类共有的属性和方法抽取到父类中,减少重复代码,实现代码的重用

父类

package animal;

public class Pet {
//	父类
	private String name;
	private String sex;
	private int age;
//	父类的方法
	public void sleep(){
		System.out.println("我想睡觉了");
	}
	
//	取值赋值
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "Pet [name=" + name + ", sex=" + sex + ", age=" + age + "]";
	}
	
//	有参和无参构造方法
	public Pet() {
		super();
		System.out.println("Pet的构造方法运行");
	}
	public Pet(String name, String sex, int age) {
		super();
		this.name = name;
		this.sex = sex;
		this.age = age;
	}
}

子类

package animal;

//	Cat:子类	Pet:父类
//	Cat类继承了Pet类
//	在Java中类是单继承
public class Cat extends Pet {
	
//	前提是有继承关系
//	在子类中调用父类的方法使用关键字:super
//	this和super的使用方法是一样的,this调用当前类的方法
//	super():调用构造方法,现在是调用父类构造方法,一定要位于第一行
//	this():调用构造方法
	
//	子类继承父类的方法
	public void CatSleep(){
		super.sleep();
	}
}

测试

package animal;

public class Demo {
	public static void main(String[] args) {
		Cat cat = new Cat();
		cat.setName("猫");
//		我想睡觉了
		cat.CatSleep();
//		Pet [name=猫, sex=null, age=0]
		System.out.println(cat);
	}
}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/871140.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存