美文网首页
Java 多态、组合、继承

Java 多态、组合、继承

作者: 良人_Coder | 来源:发表于2019-10-11 19:48 被阅读0次

多态

/**
 * 父类
 */
class BaseClass {
    
    void printBase() {
        System.out.println("i am a base method");
    }

    void printStr() {
        System.out.println("i am a method in BaseClass!");
    }
}
/**
 * 子类
 */
class SubClass extends BaseClass {

    @Override
    void printStr() {
        System.out.println("i am a method in SubClass!");
    }

    void printSub() {
        System.out.println("i am a sub method");
    }
}
/**
 * 多态的代码理解
 */
public class Polymorphism {
    public static void main(String[] args) {

        // 父类自身调用自身的类方法
        BaseClass bs = new BaseClass();
        bs.printBase();                 // i am a base method
        bs.printStr();                  // i am a method in BaseClass!

        // 子类自身调用自身的类方法
        SubClass sc = new SubClass();
        sc.printStr();                  // i am a method in SubClass!
        sc.printSub();                  // i am a sub method
        sc.printBase();                 // i am a base method

        // 多态
        BaseClass polymorphism = new SubClass();
        // 父类对象调用子类方法
        polymorphism.printStr();        // i am a method in SubClass!
        // 父类对象调用自身方法
        polymorphism.printBase();       // i am a base method
    }
}

组合

class HumanClass {

    void breath() {
        System.out.println("breath ~");
    }

    void sleep() {
        System.out.println("sleep ~");
    }

    void eat() {
        System.out.println("eat ~");
    }
}
class StuClass {

    private HumanClass human;

    StuClass(HumanClass human) {
        this.human = human;
    }

    void breath() {
        human.breath();
    }

    void study() {
        System.out.println("study ~");
    }
}
class WorkerClass {

    private HumanClass human;

    WorkerClass(HumanClass human) {
        this.human = human;
    }

    void eat() {
        human.eat();
    }

    void work() {
        System.out.println("work ~");
    }
}
public class Combination {
    public static void main(String[] args) {

        HumanClass jack = new HumanClass();
        jack.eat();
        jack.breath();
        jack.sleep();

        StuClass jess = new StuClass(jack);
        jess.breath();
        jess.study();

        WorkerClass li = new WorkerClass(jack);
        li.eat();
        li.work();
    }
}

继承

/**
 * 父类
 */
class HumanClass {

    void breath() {
        System.out.println("breath ~");
    }

    void sleep() {
        System.out.println("sleep ~");
    }

    void eat() {
        System.out.println("eat ~");
    }
}
/**
 * 子类
 */
class StuClass extends HumanClass {

    void study() {
        System.out.println("study ~");
    }
}
class WorkerClass extends HumanClass{

    void work() {

        System.out.println("work ~");
    }
}
public class Inherit {
    public static void main(String[] args) {
        HumanClass jack = new HumanClass();
        jack.breath();
        jack.eat();
        jack.sleep();

        StuClass jess = new StuClass();
        jess.study();
        jess.breath();
        jess.eat();
        jess.sleep();

        WorkerClass li = new WorkerClass();
        li.work();
        li.breath();
        li.eat();
        li.sleep();
    }
}

相关文章

  • Java 多态、组合、继承

    多态 组合 继承

  • PHP学习2

    六.继承与多态 1. 类的组合和继承(继承===“是、像”、“父与子”,组合===“需要”、“整体与局部”) 组合...

  • 继承、多态、组合

    一、简介 extends——“is-a”(是一个)的关系是用继承来表达的; “has-a”(有一个)的关系是用组合...

  • Java学习——day 04

    主要内容 继承 重写 super关键字 组合 final关键字 访问控制符 多态 笔记详情 1. 继承 在Java...

  • 2020-07-08 腾讯客户端开发面试

    项目经历 java 三大特性?java 可以多继承吗?如何实现多继承?多态有哪些类型?封装,继承,多态;不可以;接...

  • 【python面试指北】3.类和面向对象

    面向对象编程 封装、继承、多态 组合与继承 优先使用组合(has a)而非继承(is a) 类变量和实例变量的区别...

  • Java笔记

    Java基础 Java面试通关要点 1.面向对象的特征 封装 继承 多态 封装继承多态 2.final,final...

  • 【Java】面向对象:继承、组合和多态

    一. 面向对象三大特性之继承 1. 继承的概念 继承(inheritance)机制:是面向对象程序设计使代码可以复...

  • Java的基本特性

    关系 Java的四个基本特性分别是抽象,封装,继承,多态。概括起来可以这么理解,抽象、封装、继承是多态的基础,多态...

  • 《Java8学习笔记》读书笔记(七)

    第6章 继承与多态 学习目标 了解继承的目的 了解继承与多态的关系 知道如何重写方法 认识java.lang.Ob...

网友评论

      本文标题:Java 多态、组合、继承

      本文链接:https://www.haomeiwen.com/subject/ytvxmctx.html