2--java基础回顾之继承

本文详细介绍了Java中的继承概念,包括如何通过继承实现代码复用,子类如何继承父类的属性和方法,以及构造器的调用规则。同时,文中探讨了继承的限制和潜在问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先看前一个例子,我们看到Wife和Husband类中有很多属性是相同的,例如name,age,sex。为了实现代码的复用我们就要使用继承。
首先我们知道丈夫和妻子他们都是人,那么就应该有人所具备的一些属性,比如人有姓名,年龄,性别...也具有人所具备的一些行为,比如,吃饭,行走,睡觉...那么我们发现丈夫和妻子都有人说具备的一些属性和行为,这些属性和行为都是从人那里继承得来的。
继承的基本概念:通过一个已有的类来创建一个新的类,新类继承了已有类的属性和行为,这种方式称为继承。新的类叫做子类,已有被扩展的类叫做父类。一个类使用关键字extends继承其他类,关键字extends出现在类声明时的类名后,extends后面跟着的是要继承的类的名称,extends实现了继承。在Java中的类只能继承一个类。通过使用继承我们能够非常方便地复用以前的代码,能够大大的提高开发的效率。

public class Person {
	
	private String name;
	private String sex;
	private int age;
	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;
	}
}

public class Husband extends Person {

	private Wife wife;

	public void setWife(Wife wife) {
		this.wife = wife;
	}

	public Wife getWife() {
		return wife;
	}
	
}

public class Wife extends Person {

	private Husband husband;

	public Husband getHusband() {
		return husband;
	}

	public void setHusband(Husband husband) {
		this.husband = husband;
	}
	
	
}
使用继承要注意:

子类拥有父类分类非private的属性和方法

子类可以拥有自己的属性和方法,

子类可以用自己的方式实现父类的方法


上面我们说子类可以继承父类非private的属性和方法,但是还有一样子类继承不了,那就是构造器,对于构造器来说它只能被调用不能被继承,子类调用父类的构造器可以使用super();

public class Person {
	
	private String name;
	private String sex;
	private int age;
	
	Person(){
		 System.out.println("Person Constrctor...");
	}
	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;
	}
}

<pre name="code" class="java">public class Husband extends Person {

	private Wife wife;
	
	
	Husband(){
		System.out.println("Husband Constructor...");

	}
	public static void main(String[] args) {
        	Husband husband  = new Husband();
    	}
	public void setWife(Wife wife) {
		this.wife = wife;
	}

	public Wife getWife() {
		return wife;
	}
	
}
<pre>Output:
Person Constrctor...
Husband Constructor...

可以看出是从父类开始一级一级完成构建的,子类并没有引用父类的构造器,但是编译器会默认给子类调用父类的构造器,之后才会调用子类的构造器。要这样父类是要有构造器的,若父类没有构造器,那么子类要调用必须使用super();

综上:对于继承,子类默认会调用父类的构造器,但是父类没有默认的构造器,子类必须显示的调用父类的构造器,而且必须在子类构造器的第一行代码


在封装里我们使用private访问修饰符,但是在继承里,如果使用private来修饰子类便不能继承,有时我们需要将该类的某些事物尽可能的隐藏,并且还允许子类来访问,这是我们就必须用protected,它是继承此类,或与该类在同一个包里的都能访问。


继承的缺陷:1:父类变,子类也必须变 2:破坏了封装,3:继承是一种强耦合。





 


内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值