zoukankan      html  css  js  c++  java
  • 多态&接口

    多态

    多态定义:允许一个父类变量引用子类的对象;允许一个接口类型引用实现类对象。

    多态的调用:使用父类的变量指向子类的对象;所调用的属性和方法只限定父类中定义的属性和方法,不能调用子类中特有的属性和方法,

    多态主要应用为多态参数和多态对象

    package JobTest;
    
    abstract class Job {
        public abstract void work();// 为了方便进行多态调用
    }
    
    class Teacther extends Job {
        @Override
        public void work() {
            System.out.println("上课");
        }
    }
    
    class Cookies extends Job {
        @Override
        public void work() {
            System.out.println("做饭");
        }
    }
    
    class Driver extends Job {
        @Override
        public void work() {
            System.out.println("开车");
        }
    }
    
    package JobTest;
    
    public class JobTest {
    
        public static void main(String[] args) {
            Job a=new Teacther();//父类类型变量a指向子类对象teacther
            Job b=new Cookies();//父类类型变量b指向子类对象Cookies
            Job    c=new Driver();//父类类型变量c指向子类对象Driver
            a.work();
            b.work();
            c.work();
        }
    
    }

    以上实例是简单使用多态实例,父类Job分别使用变量指向子类对象Teacher/Cookies/Driver;

    如果一个类继承抽象类,那么必须重写抽象类中所有抽象方法(@Override)

    接口

    接口可以看做抽象类的特例

    接口中只能定义抽象方法,接口可以看做行为的抽象。

    接口中的方法只能是public

    接口中变量为public static final

    public interface Iwash {
    public abstract void wash();
    }
    
    class Mun implements Iwash{
    
        @Override
        public void wash() {
            System.out.println("手洗");
            
        }
    
    }
    
    class Washer implements Iwash {
    
        @Override
        public void wash() {
            System.out.println("电机搅动");
    
        }
    
    }
    public class TestWash {
    
        public static void main(String[] args) {
            Iwash w = new Mun();
            w.wash();
    
        }
    
    }

    实例中建立一个Iwash接口,Mum和Wash都有wash这个行为,所以都有Iwash接口

    接口用于在不同的类实例当中,共享通用行为,重用方法。

    接口和多态的概念不是很难,但是在于灵活运用。

  • 相关阅读:
    ubuntu高版本环境变量问题
    linux下可以和qq截屏比拟的工具hotshots
    如何以非 root 用户将应用绑定到 80 端口-ssh 篇
    mvn profile 深层次目录打参数核心配置
    java 判断字符串编码
    springmvc 传递和接收数组参数
    系统分层 manager层意义
    mysql insert中文乱码无法插入ERROR 1366 (HY000): Incorrect string value
    Apache Lens —— 统计数据分析查询接口
    云平台需要开发的底层功能
  • 原文地址:https://www.cnblogs.com/zxiaoyuer/p/6790679.html
Copyright © 2011-2022 走看看