-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathPerson.java
More file actions
56 lines (46 loc) · 1.42 KB
/
Person.java
File metadata and controls
56 lines (46 loc) · 1.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package org.codedifferently;
// Base abstraction for every person record in the system.
// Shared identity/contact fields live here, while child classes define custom summaries.
public abstract class Person {
// Unique identifier used for login/lookup.
private int id;
// Basic profile values shared by all roles.
private String firstname;
private String lastname;
private String email;
// Constructor initializes all shared Person data at object creation time.
public Person(int id, String firstname, String lastname, String email){
this.id=id;
this.firstname=firstname;
this.lastname=lastname;
this.email=email;
}
// Setters allow future updates to profile data.
public void setLastname(String lastname) {
this.lastname = lastname;
}
public void setId(int id) {
this.id = id;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public void setEmail(String email) {
this.email = email;
}
// Getters expose read-only access to stored profile values.
public String getLastname() {
return lastname;
}
public String getFirstname() {
return firstname;
}
public int getId() {
return id;
}
public String getEmail() {
return email;
}
// Each subclass provides its own summary.
public abstract String getSummary();
}