4.37 使用继承学生和老师案例

/*
学生案例和老师案例讲解

学生:
	成员变量;姓名,年龄
	构造方法:无参,带参
	成员方法:getXxx()/setXxx()
老师:
	成员变量;姓名,年龄
	构造方法:无参,带参
	成员方法:getXxx()/setXxx()
*/
//定义学生类
class Student {
	// 姓名
	private String name;
	// 年龄
	private int age;

	public Student() {
	}

	public Student(String name, int age) {
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
}

// 定义老师类
class Teacher {
	// 姓名
	private String name;
	// 年龄
	private int age;

	public Teacher() {
	}

	public Teacher(String name, int age) {
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
}

class ExtendsTest3 {
	public static void main(String[] args) {
		// 创建学生对象并测试
		// 方式1
		Student s1 = new Student();
		s1.setName("程又青");
		s1.setAge(27);
		System.out.println(s1.getName() + "---" + s1.getAge());

		// 方式2
		Student s2 = new Student("程又青", 27);
		System.out.println(s2.getName() + "---" + s2.getAge());

	}
}

使用继承改进:

/*
学生案例和老师案例讲解

学生:
	成员变量;姓名,年龄
	构造方法:无参,带参
	成员方法:getXxx()/setXxx()
老师:
	成员变量;姓名,年龄
	构造方法:无参,带参
	成员方法:getXxx()/setXxx()

看上面两个类的成员,发现了很多相同的东西,所以我们就考虑抽取一个共性的类:
人:
	成员变量;姓名,年龄
	构造方法:无参,带参
	成员方法:getXxx()/setXxx()

	学生 继承 人
	老师 继承 人
*/
//定义人类
class Person {
	// 姓名
	private String name;
	// 年龄
	private int age;

	public Person() {
	}

	public Person(String name, int age) { // "林青霞",27
		this.name = name;
		this.age = age;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}
}

// 定义学生类
class Student extends Person {
	public Student() {
	}

	public Student(String name, int age) { // "林青霞",27
		// this.name = name;
		// this.age = age;
		super(name, age);
	}
}

// 定义老师类
class Teacher extends Person {

}

class ExtendsTest4 {
	public static void main(String[] args) {
		// 创建学生对象并测试
		// 方式1
		Student s1 = new Student();
		s1.setName("李大仁");
		s1.setAge(27);
		System.out.println(s1.getName() + "---" + s1.getAge());

		// 方式2
		Student s2 = new Student("李大仁", 27);
		System.out.println(s2.getName() + "---" + s2.getAge());

	}
}
时间: 2024-11-03 21:37:33

4.37 使用继承学生和老师案例的相关文章

Javascript面向对象特性实现封装、继承、接口详细案例——进级高手篇

Javascript面向对象特性实现(封装.继承.接口) Javascript作为弱类型语言,和Java.php等服务端脚本语言相比,拥有极强的灵活性.对于小型的web需求,在编写javascript时,可以选择面向过程的方式编程,显得高效:但在实际工作中,遇到的项目需求和框架较大的情况下,选择面向对象的方式编程显得尤其重要,Javascript原生语法中没有提供表述面向对象语言特性的关键字和语法(如extends.implement).为了实现这些面向对象的特性,需要额外编写一些代码,如下.

java 学生缴学费案例:

/** 学生缴学费案例: 学生类(Student)有两个字段: name(名字)和isFee(是否交学费的状态),有一个方法:交学费(fees).每 一个学生都是通过student类new出来的一个对象,现在创建一个数组存放多个学生对象,再判断数组 中的学生是否已经缴费,如果没有,则学生的交学费方法. */ //描述学生对象 class Student { String name; //学生名称 boolean isFee = false;//学生缴费状态,默认是未缴费 void fees()

一句话笑话2014关于学生和老师的经典笑话

1.好怀念小时候:记得小学老师骂我:"我一巴掌把你踢出去!"当时我想笑却不敢笑. 2.上初中的时候,老师要我们对自己评价一下. 我就说了句:\"饭来伸手\", 我的同座接了句:\"衣来张口\" 大家暴笑!!! 3.初中时我们数学老师姓蒋 一次自习问他问题,开口想叫老师,想了0.001秒又想叫蒋老师,结果一开口:老蒋! 全班同学爆笑,偶巨寒! 4.初中上体育课,那天生病,我是体育委员,让大家排好队以后,我本来想把请假条给体育老师,结果摸成了一毛钱纸

C++基础6 【继承】 类型兼容 satatic 多继承 虚继承 【多态】 案例 虚析构函数 重载重写重定义

[继承] 继承的访问控制域 图 类型兼容性原则  指针 与 引用 用子类直接初始化父类 类的继承模型示意 图 [继承结论] [非常重要的概念] 继承与组合混搭情况下,构造和析构调用原则 原则:先构造父类,再构造成员变量.最后构造自己 先析构自己,在析构成员变量.最后析构父类 继承中,同名的成员变量的处理办法 继承中,同名的成员函数的处理办法 派生类中的static关键字 如果静态成员变量,你没有使用,也没有初始化的话 编译不会报错 经典错误 : 类中函数默认是private的,无法在外部访问 具

python继承关系及DVD案例

1.模块.getrefcount--查看引用个数,如果没有引用,则抛异常: 2.继承:简化代码.生成子类时,先初始化父类 继承属性--①self.属性=当前属性 ②父类.属性=当前属性 ③父类._init_()方法 ④super(子类,self)._init_()方法 3.构造方法(必须有返回值)优先于初始化方法 类名.mso用于调用父类的位置 def _new_(cls,*,**): print() return object._new_(cls) 4.类方法:@classmethod需要参数

FastReport.Net使用:[37]报表继承

1.设计一个基础报表,将其保存为BaseReport. 2.新建一个继承的报表. 通过 文件-->新建 打开"新建对象"向导.选择"继承的报表",点击确定. 3. 在打开对话框中选择基础报表BaseReport. 打开基础报表后,会把基础报表加载出来,并且基础报表的Band和控件对象都有一个锁的标识. 在标题后增加"继承的报表"字样,然后保存报表. 4.修改基础报表BaseReport的标题样式,然后保存. 5.打开基础报表查看,标题样式也

学生表单案例

<form action=""> <fieldset> <legend>学生档案</legend> <label for="userName">姓名:</label> <input type="text" name="userName" id="userName" placeholder="请输入您的姓名"/&

java 继承的概念及案例

package java09; //定义一个员工类 public class Employee { public void method(){ System.out.println("方法执行!!!"); } } package java09; //定义一个教师类 public class Teacher extends Employee { } package java09; //定义一个助教类 public class Zhujiao extends Employee { } pa

Android(java)学习笔记195:学生信息管理器案例(ListView)

1.首先说明一个知识点,通常我们显示布局文件xml都是如下: setContentView(R.layout.activity_main): 其实每一个xml布局文件就好像一个气球,我们可以使用View.inflate(Context  context,int  resource , ViewGroup  root),inflate单词的意思就是:打气筒,也就是使用打气筒方法inflate(静态方法,返回View)把xml这个气球打成View,交给系统去显示:也就是说如下: setContent