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