本文主要是介绍关于java普通类、抽象类、接口在生活中的形象比喻,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.关键点(对三者的基本概念还不理解的小伙伴要恶补一下了...)
(1)普通类:可以new出来的class;类中包含属性和具体的方法体。
(2)抽象类:由abstarct修饰的class;不能被实例化;可以有自己的属性,也可以有抽象的和非抽象的方法。
(3)接口:关键字interface;不能实例化;声明的方法需要子类实现,成员变量需要声明为final static。
2.生活中的例子。
回想我们小时候,每天自己上下学,无需家长接送,放学后三五个小伙伴结伴到池塘摸鱼,到树上掏鸟窝,家庭作业非常简单,做完作业只需父母签上“家长看过”,就可以早早的睡觉了 。哪像现在的孩子,什么都需要大人操心,老师操心。
针对以上事情,我们通过java中的普通类、抽象类、接口来模拟一下生活中孩子教育的案例:
(1)首先定义一个学生类:
package com.scott.bean;
/**
* 学生类
* @author Administrator
*
*/
public class Student {
private String name; // 姓名
private Integer age; // 年龄
public Student(String name, Integer age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
(2)再定义一个猫妈(什么事儿都替孩子做)
package com.scott.bean;
public class Mother {
public void makeBreakfast() {
System.out.println("帮孩子做早餐");
}
public void goSchool() {
System.out.println("送孩子上学");
}
public void goHome() {
System.out.println("接孩子回家");
}
public void doHomework() {
System.out.println("辅导孩子做作业");
}
}
(3)虎爸
package com.scott.bean;
public interface Father {
public void makeBreakfast();
public void goSchool();
public void goHome();
public void doHomework();
}
(4)奶奶
package com.scott.bean;
public abstract class Grandmother {
public void makeBreakfast() {
System.out.println("奶奶给孩子做饭");
}
public abstract void goSchool();
public abstract void goHome();
public abstract void doHomework();
}
3.案例解读
(1) 猫妈什么事儿都替孩子着想,孩子基本上是衣来伸手饭来张口
package com.scott.bean;
/**
* 学生类
* @author Administrator
*
*/
public class Student extends Mother{
private String name; // 姓名
private Integer age; // 年龄
public Student(String name, Integer age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
客户端:
Student student = new Student("毛毛",8);
student.makeBreakfast();
student.goSchool();
student.goHome();
student.doHomework();
妈妈帮孩子做早餐
妈妈送孩子上学
妈妈接孩子回家
妈妈辅导孩子做作业
(2)虎爸要求所有的事儿孩子必须自己独立去做
package com.scott.bean;
/**
* 学生类
* @author Administrator
*
*/
public class Student implements Father{
private String name; // 姓名
private Integer age; // 年龄
public Student(String name, Integer age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public void makeBreakfast() {
System.out.println("在虎爸的严厉监督下,孩子自己做早餐");
}
@Override
public void goSchool() {
System.out.println("在虎爸的严厉监督下,孩子自己上学");
}
@Override
public void goHome() {
System.out.println("在虎爸的严厉监督下,孩子自己回家");
}
@Override
public void doHomework() {
System.out.println("在虎爸的严厉监督下,孩子自己完成作业");
}
}
客户端:
Student student = new Student("毛毛",8);
student.makeBreakfast();
student.goSchool();
student.goHome();
student.doHomework();
在虎爸的严厉监督下,孩子自己做早餐
在虎爸的严厉监督下,孩子自己上学
在虎爸的严厉监督下,孩子自己回家
在虎爸的严厉监督下,孩子自己完成作业
(3)奶奶帮孙子做早餐,但是上下学做作业需要孙子自己独立完成
package com.scott.bean;
/**
* 学生类
* @author Administrator
*
*/
public class Student extends Grandmother{
private String name; // 姓名
private Integer age; // 年龄
public Student(String name, Integer age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public void goSchool() {
System.out.println("孙子长大了,可以自己去上学");
}
@Override
public void goHome() {
System.out.println("孙子长大了,可以自己回家");
}
@Override
public void doHomework() {
System.out.println("孙子长大了,可以自己完成作业");
}
}
客户端:
Student student = new Student("毛毛",8);
student.makeBreakfast();
student.goSchool();
student.goHome();
student.doHomework();
奶奶给孩子做饭
孙子长大了,可以自己去上学
孙子长大了,可以自己回家
孙子长大了,可以自己完成作业
这篇关于关于java普通类、抽象类、接口在生活中的形象比喻的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!