Skip to content

Instantly share code, notes, and snippets.

View BerkeSoysal's full-sized avatar
🦍
Focusing

Berke Soysal BerkeSoysal

🦍
Focusing
View GitHub Profile
public class MallardDuck extends Duck
{
@Override
public void display()
{
System.out.println("I'm a mallard duck");
}
}
public abstract class Duck
{
public void swim()
{
System.out.println("i can swim.");
}
public void quack()
{
System.out.println("quack quack!");
public interface FlyBehaviour
{
void fly();
}
public interface QuackBehavior
{
void quack();
}
public class Fly implements FlyBehaviour
{
@Override
public void fly()
{
System.out.println("I can fly.");
}
}
public abstract class Duck
{
QuackBehavior quackBehavior;
FlyBehaviour flyBehaviour;
public void performQuack()
{
quackBehavior.quack();
}
public class MallardDuck extends Duck
{
public MallardDuck()
{
this.quackBehavior = new Quack();
this.flyBehaviour = new Fly();
}
@Override
public void display()
public class Quack implements QuackBehavior
{
@Override
public void quack()
{
System.out.println("Quack, quack!");
}
}
public class Main {
public static void main(String[] args) {
Duck duck = new MallardDuck();
duck.swim();
duck.display();
duck.performFly();
duck.performQuack();
}
public class Main {
public static void main(String[] args) {
Duck duck = new MallardDuck();
duck.swim(); // swimming
duck.display(); // I'm a mallard duck
duck.performFly(); // I can fly.
duck.performQuack(); // Quack, quack!
Duck otherduck = new RubberDuck();