Java基础-person类派生出student和teacher

在前一段时间对Java做了一个简单的了解,最近确实有一些迷茫干脆就来整理前段时间学的,写第一个关于Java的博客吧…
言归正传,一个person类派生出来的student和teacher在这里需要用到派生,类的构造,以及this关键字。
派生
简单来说就是一个大的方面又产生两个比较小的方面就好比这一次的题目人类派生出来学生和教师,新派生的可以在其原有的基础上在增加一些新的属性。
类的构造
感觉就是在文件包里面之后每一个属性分别用一个非public类指明(或者类似于一个单独的小函数)
this关键字
1) this调用本类中的属性,也就是类中的成员变量;
2)this调用本类中的其他方法;
3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。
先写一个person类在他上面加一些属性,然后再写派生出的其他的两个。
person类:

package LCL;

public class Person {
	String name;
	String sex;
	int age;
	public void showInfo() {//此处也可不写
		System.out.println("姓名:"+name);
		System.out.println("性别:"+sex);
		System.out.println("年龄:"+age);
	}
}

student:
在这里用到派生也就是所谓的父类,需要用到extends关键字在这里调用的方法是Student extends Person在person的基础上有新加了几个新的属性;

package LCL;//自定义的包的名称

public class Student extends Person{
	String name;
	String sex;
	int age;
	String college;
	String number;
	String department;
	public  Student(String Stuname){
	   this.name = Stuname;
	}
	public void StuAge(int Stuage){
	   age =  Stuage;
	}
	public void StuSex(String StuSex){
	   sex = StuSex;
	}
    public void StuCollege(String Stucollege){
	   college = Stucollege;
	}
    public void StuNumber(String Stunumber){
 	   number = Stunumber;
 	}
    public void StuDepartment(String Studepartment){
    	department = Studepartment;
 	}
    public void showInfo() {
		System.out.println("姓名:"+name);
		System.out.println("性别:"+sex);
		System.out.println("年龄:"+age);
		System.out.println("学院:"+college);
		System.out.println("学号:"+number);
		System.out.println("专业:"+department);
	}
	public static void main(String [] args){
		Student stu1 =new Student("v-w-v");//新建一个人的名称
		stu1.StuAge(21);
		stu1.StuSex("男");
		stu1.StuCollege("信工学院");
		stu1.StuNumber("201805050130");
		stu1.StuDepartment("计算机科学与技术");
		stu1.showInfo();
	}
}

teacher:
在这里用的是和student相同的方法;

package LCL;

public class Teacher extends Person{
	String name;
	String sex;
	int age;
	String college;
	String job;
	String project;
	public  Teacher(String Teaname){
	   this.name = Teaname;
	}
	public void TeaAge(int Teaage){
	   age =  Teaage;
	}
	public void TeaSex(String TeaSex){
	   sex = TeaSex;
	}
    public void TeaCollege(String Teacollege){
	   college = Teacollege;
	}
    public void TeaJob(String Teajob){
 	   job = Teajob;
 	}
    public void TeaProject(String Teaproject){
    	project = Teaproject;
 	}
	public void showInfo() {
		System.out.println("姓名:"+name);
		System.out.println("性别:"+sex);
		System.out.println("年龄:"+age);
		System.out.println("学院:"+college);
		System.out.println("职称:"+job);
		System.out.println("管理班级:"+project);
	}
	public static void main(String [] args){
		Teacher teach1 =new Teacher("李华");
		teach1.TeaAge(29);
		teach1.TeaSex("男");
		teach1.TeaCollege("信工学院");
		teach1.TeaJob("辅导员");
		teach1.TeaProject("计算机科学与技术");
		teach1.showInfo();
	}
}
这是一个典型的Java面向对象编程示例,涉及到抽象类继承。JMU (James Madison University) 的 Java M04 课程中,可能会有一个这样的结构: 1. **Abstract ** (`jmu-java-m04-Abstract`):Java中的抽象类是一种特殊的,它能被实例化,主要用于提供通用的行为属性给其他。它通常包含抽象方法(没有实现的虚方法),这些方法由它的子来实现。`AbstractClass`可能是像 `Person` 这样的基础型。 2. **Person** :这是可能的一个基,定义了所有人的共通特性,如姓名、年龄等基本属性。它可能是抽象的,也可能有默认的无参构造函数非抽象的方法。 ```java abstract class Person { String name; int age; // 默认构造函数 public Person() {} // 抽象方法示例 abstract void introduce(); } ``` 3. **Student** **Teacher** :这两个都是 `Person` 的子,表示特定的角色——学生教师。它们会继承 `Person` 的属性,并覆盖或实现 `Person` 中的抽象方法,比如添加特有的属性(学生可能有学号,教师可能有职称)方法(如 `Student` 可能有个 `study()` 方法,而 `Teacher` 有 `teach()` 方法)。 ```java class Student extends Person { String studentID; @Override void introduce() { System.out.println("我是学生 " + name + ", 学生号:" + studentID); } // 其他可能的方法... } class Teacher extends Person { String title; @Override void introduce() { System.out.println("我是老师 " + name + ", 职称:" + title); } // 其他可能的方法... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮皮皮皮皮皮卡乒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值