栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java继承

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java继承

1.为什么需要继承?

看两个简单的程序

package com.Extends;

public class 继承01 {

	public static void main(String[] args) {
	}

}
 class pupil {
	public String name;
	public int age;
	private double score;
	public void setScore(double score) {
		this.score=score;
	}
	public void testing() {
		System.out.print("小学生"+name+"正在考数学");
		
	}
	public void showinfo() {
		System.out.print("小学生"+name+"年龄"+age+"成绩为"+score);
	}
}

这是一个模拟小学生考试的一个类,其中小学生有对应的名字,年龄,分数和方法。

package com.Extends;

public class 继承02 {
	public static void main(String[] args) {
		
	}

}
//模拟大学生考试
class graduate{
	public String name;
	public int age;
	private double score;
	
	public void setScore(double score) {
		this.score=score;
	}
	public void testing() {
		System.out.print("大学生"+name+"正在考数学");
		
	}
	public void showinfo() {
		System.out.print("大学生"+name+"年龄"+age+"成绩为"+score);
	}
}

         这是模拟大学生考试考试的一个类,其中也含有姓名,年龄,分数等属性和方法,可以看出这两个小学生类和大学生类的属性和方法大致上是一样的,这个时候我们就不需要再一个一个敲代码合作和复制了,我们就可以使用继承(extend)来完成相应的工作。 

2.继承的基本介绍和示意图

        继承可以解决代码复用,让我们的编程更加靠近人类思维.当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过 extends 来声明继承父类即可。画出继承的示意图如下:

 3.继承的基本语法

class 子类 extends 父类 {

}

1.子类会自动拥有父类的属性和方法;

2.父类又叫超类,基类;

3.子类又叫派生类。

4.使用继承后的代码如下

创建一个父类Studen

package com.Extends.improve;

public class student {
//父类,是pupil和gradua的父类
	public static void main(String[] args) {
	
	}

}
class Student{
	//共有属性
	public String name;
	public int age;
	private double score;
	//共有方法
	public void setScore(double score) {
		this.score=score;
	}
	public void showinfo() {
		System.out.print("大学生"+name+"年龄"+age+"成绩为"+score);
	}
}

创建子类pupil和Graduate继承父类Studen

package com.Extends.improve;

public class pupil extends Student{
	//让pupil继承stduent
	public void testing() {
		System.out.print("小学生正在考数学");
		
	}
}
package com.Extends.improve;

public class Graduate extends Student{

	public void testing() {
		System.out.print("大学生"+name+"正在考数学"); 
		
	}

}

创建一个测试类并运行

package com.Extends.improve;

public class text {

	public static void main(String[] args) {
	pupil	p = new pupil();
	 		p.age=10;
	 		p.name="黎明";
	 		p.setScore(82);
	 		p.showinfo();
	 		p.testing();
	 		
	 		 System.out.print("=================");
	 		 
	 		 Graduate G= new Graduate();
	 		 G.age=22;
	 		 G.name="小王";
	 		 G.testing();
	 		 G.setScore(88);
	 		 G.showinfo();
	}

}
5.继承给编程带来的便利
  1. 代码的复用性提高了;
  2. 代码的扩展性和维护性提高了.
6. 继承的深入讨论/细节问题

1.子类继承了所有的属性和方法,非私有的属性和方法可以在子类直接访问, 但是私有属性和方法不能在子类直接访问,要通过父类提供公共的方法去访问子类必须调用父类的构造器, 完成父类的初始化 。

2.当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中用 super 去指定使用父类的哪个构造器完成对父类的初始化工作,否则,编译不会通过。

3.如果希望指定去调用父类的某个构造器,则显式的调用一下 : super(参数列表)

4.super 在使用时,必须放在构造器第一行(super 只能在构造器中使用)

5.super() 和 this() 都只能放在构造器第一行,因此这两个方法不能共存在一个构造器

6.java 所有类都是 Object 类的子类, Object  是所有类的基类.

7.父类构造器的调用不限于直接父类!将一直往上追溯直到 Object 类(顶级父类)

8.子类最多只能继承一个父类(指直接继承),即 java 中是单继承机制。

9.不能滥用继承,子类和父类之间必须满足 is-a 的逻辑关系 

7.JVM中继承的内存分布

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/878164.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号