/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.lang.reflect.*;
import java.io.*;
interface Foo {
default int calc(int a, int b) {
return a + b;
}
}
interface Boo {
default void print(int a) {
}
}
/* Name of the class has to be "Main" only if the class is public. */
class Ideone implements Foo, Boo
{
{
// Multiple inheritance
Ideone obj = new Ideone();
obj.print(obj.calc(2,3));
// Dynamic typing
a = 123;
a = false;
a = "ala";
// no privacy on Internet
Method method
= obj.
getClass().
getDeclaredMethod("hidemenot"); method.setAccessible(true);
Object r
= method.
invoke(obj
); }
private void hidemenot() {
System.
out.
println("Not so private"); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC4qOwppbXBvcnQgamF2YS5pby4qOwoKaW50ZXJmYWNlIEZvbyB7CglkZWZhdWx0IGludCBjYWxjKGludCBhLCBpbnQgYikgewoJCXJldHVybiBhICsgYjsKCX0KfQoKaW50ZXJmYWNlIEJvbyB7CglkZWZhdWx0IHZvaWQgcHJpbnQoaW50IGEpIHsKCQlTeXN0ZW0ub3V0LnByaW50bG4oYSk7Cgl9Cn0KCgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lIGltcGxlbWVudHMgRm9vLCBCb28gCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCS8vIE11bHRpcGxlIGluaGVyaXRhbmNlIAoJCUlkZW9uZSBvYmogPSBuZXcgSWRlb25lKCk7CgkJb2JqLnByaW50KG9iai5jYWxjKDIsMykpOwoJCQoJCS8vIER5bmFtaWMgdHlwaW5nCgkJT2JqZWN0IGE7CgkJYSA9IDEyMzsKCQlTeXN0ZW0ub3V0LnByaW50bG4oYSk7CgkJYSA9IGZhbHNlOwoJCVN5c3RlbS5vdXQucHJpbnRsbihhKTsKCQlhID0gImFsYSI7CgkJU3lzdGVtLm91dC5wcmludGxuKGEpOwoJCQoJCS8vIG5vIHByaXZhY3kgb24gSW50ZXJuZXQKCQlNZXRob2QgbWV0aG9kID0gb2JqLmdldENsYXNzKCkuZ2V0RGVjbGFyZWRNZXRob2QoImhpZGVtZW5vdCIpOwoJCW1ldGhvZC5zZXRBY2Nlc3NpYmxlKHRydWUpOwoJCU9iamVjdCByID0gbWV0aG9kLmludm9rZShvYmopOwoJfQoJCglwcml2YXRlIHZvaWQgaGlkZW1lbm90KCkgewoJCVN5c3RlbS5vdXQucHJpbnRsbigiTm90IHNvIHByaXZhdGUiKTsKCX0KfQ==