Migrate Reflection code to Core-Java module

This commit is contained in:
Alex Theedom
2016-09-04 08:02:40 +01:00
parent 6bd09ce0ae
commit 20e52971a7
7 changed files with 429 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
package com.baeldung.java.reflection;
public abstract class Animal implements Eating {
public static final String CATEGORY = "domestic";
private String name;
public Animal(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String makeSound() {
return getSound();
}
protected abstract String getSound();
}

View File

@@ -0,0 +1,36 @@
package com.baeldung.java.reflection;
public class Bird extends Animal {
private boolean walks;
public Bird() {
super("bird");
}
public Bird(String name, boolean walks) {
super(name);
setWalks(walks);
}
public Bird(String name) {
super(name);
}
@Override
public String eats() {
return "grains";
}
@Override
protected String getSound() {
return "chaps";
}
public boolean walks() {
return walks;
}
public void setWalks(boolean walks) {
this.walks = walks;
}
}

View File

@@ -0,0 +1,5 @@
package com.baeldung.java.reflection;
public interface Eating {
String eats();
}

View File

@@ -0,0 +1,24 @@
package com.baeldung.java.reflection;
public class Goat extends Animal implements Locomotion {
public Goat(String name) {
super(name);
}
@Override
protected String getSound() {
return "bleat";
}
@Override
public String getLocomotion() {
return "walks";
}
@Override
public String eats() {
return "grass";
}
}

View File

@@ -0,0 +1,5 @@
package com.baeldung.java.reflection;
public interface Locomotion {
String getLocomotion();
}

View File

@@ -0,0 +1,6 @@
package com.baeldung.java.reflection;
public class Person {
private String name;
private int age;
}