IC211 Spring AY 2020
Name (Last, First): ____________________________________________________ Alpha: _____________________
Describe help received: _________________________________________________________________
import java.util.*; public class HWa { public static class APair { Object x, y; public APair(Object o1, Object o2) { x = o1; y = o2; } public Object first() { return x; } public Object second() { return y; } } public static class BPair<T> { T x, y; public BPair(T o1, T o2) { x = o1; y = o2; } public T first() { return x; } public T second() { return y; } } public interface Fooable { public String foo(); } |
public static class CPair { Fooable x, y; public CPair(Fooable o1, Fooable o2) { x = o1; y = o2; } public Fooable first() { return x; } public Fooable second() { return y; } } public static class Bat implements Fooable { int val; public Bat(int k) { val = k; } public String foo() { return "Bat" + val; } public int bar() { return val*val; } } public static class Pig implements Fooable { String lab; public Pig(String s) { lab = s; } public String foo() { return "Pig" + lab; } } public static void main(String[] args) { APair a = new APair(new Bat(7), new Pig("Q")); BPair<Bat> b = new BPair<Bat>(new Bat(8), new Bat(9)); CPair c = new CPair(new Bat(5), new Pig("Z"));; } } |
|
|
BPair<Bat> b = new BPair<Bat>(new Bat(8), new Pig("Z"));How could you define b as a BPair in such a way as to allow one to initialize it with
(new Bat(8), new Pig("Z"))
?