温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

简单类的写法及继承、接口等用法实例

发布时间:2021-10-11 10:28:48 来源:亿速云 阅读:138 作者:iii 栏目:编程语言

这篇文章主要讲解了“简单类的写法及继承、接口等用法实例”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“简单类的写法及继承、接口等用法实例”吧!

  • 简单类的写法及继承、接口等用法

【命名后参考编码演示】

简单类的写法及继承、接口等用法实例

【参考程序】

package cn.fldong.lesson_code;

// 定义父类 —— 人
public class Person {
	//【1】定义属性
	private String name;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

	private int age;
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	//【2】定义无参和有参构造函数
	public Person() {}
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
	}	
	
	//【3】重新object的toString()方法	
	@Override
	public String toString() {
		return "Person类 [name=" + name + ", age=" + age + "]";
	}	
	
	//【4】定义的普通方法work()
	void work() {
		System.out.println("Person类中实现的工作方法!");
	}	
}
// ==============================================

//【定义生活接口】
public interface ILife {
	void eat();
	void drink();
	void play();
	void happy();
}
// ==============================================

// 定义子类——学生
public class Student extends Person implements ILife {
	//【1】定义属性
	private String className;	
	public String getClassName() {
		return className;
	}
	public void setClassName(String className) {
		this.className = className;
	}
	
	//【2】定义有参和无参的构造方法
	public Student() {}
	public Student(String name, int age,String className) {
		super(name, age);
		this.className=className;
	}
	
	//【3】重写toString()方法
	@Override
	public String toString() {
		return "Student类 [name:=" + super.getName() +" age:="+ super.getAge()+" className:=" + className + "]";
	}
	
	//【4】实现接口方法
	@Override
	public void eat() {
		System.out.println("学生喜欢吃快餐!");
	}
	@Override
	public void drink() {
		System.out.println("学生喜欢喝可乐!");
	}
	@Override
	public void play() {
		System.out.println("学生喜欢玩游戏!");
	}
	@Override
	public void happy() {
		System.out.println("学生爱课堂睡觉!");
	}
	
	//【5】定义的普通方法study()
	public void study() {
		System.out.println("学习是学生一生最快乐的事~_~");
	}
}
// ==============================================

// 定义子类教师
public class Teacher extends Person {
	//【1】定义属性
	private int workYears;	
	public int getClassName() {
		return workYears;
	}
	public void setClassName(int workYears) {
		this.workYears = workYears;
	}
	
	//【2】定义有参和无参的构造方法
	public Teacher() {}
	public Teacher(String name, int age,int workYears) {
		super(name, age);
		this.workYears = workYears;
	}
	
	//【3】重写toString()方法
	@Override
	public String toString() {
		return "Teacher类 [workYears=" + workYears + "]";
	}
	
	//【4】重写父类方法work()
	public void work() {
		System.out.println("老师工作挺辛苦,同学们给个面子支持下吧!");
	}
}
// ==============================================

//测试类——程序入口
public class MyMain {
	public static void main(String[] args) {
		// 【1】实例化一个老师对象,并调用方法输出老师工龄
		Teacher objTeacher=new Teacher("董福亮",40,20);		
		objTeacher.work();
				
		Student objStudent=new Student("管鑫淼",19,"软件工程2班");
		objStudent.work();
		System.out.println("==========上面两个对象调用同名方法不叫多态,因为他们类型不同Student和Teacher==============");
		System.out.println();
		
		// 【2】测试多态调用work()方法
		Person objT=new Teacher("董老师",30,10);		
		objT.work();
		Person objS=new Student("张钰",20,"软件工程2班");
		objS.work();
		System.out.println("=================这两个对象调用同名方法才叫多态,因为他们类型相同Person==================");
		System.out.println();
		
		// 【3】测试Person类型变量(实质是Studeng类对象)时,调用子类独有(study())方法
		Person obj=new Student("张钰",20,"软件工程2班");
		//		obj.study(); 
		//	将显示错误信息:The method study() is undefined for the type Person
		
		Student result=(Student)obj;
		result.study();
		System.out.println("=========================================================================");
		System.out.println("强制转换后才可以调用");
		System.out.println("【注意】必须确定 赋给父类Person变量的是 子类Student类型的实例 才可以强制转换!");
	}
}

感谢各位的阅读,以上就是“简单类的写法及继承、接口等用法实例”的内容了,经过本文的学习后,相信大家对简单类的写法及继承、接口等用法实例这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI