这篇文章主要讲解了“简单类的写法及继承、接口等用法实例”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“简单类的写法及继承、接口等用法实例”吧!
简单类的写法及继承、接口等用法
【命名后参考编码演示】
【参考程序】
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类型的实例 才可以强制转换!");
}
}
感谢各位的阅读,以上就是“简单类的写法及继承、接口等用法实例”的内容了,经过本文的学习后,相信大家对简单类的写法及继承、接口等用法实例这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/fldong/blog/5047491