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接口

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

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

  • 相关阅读:
    Linux网络相关命令firewalld和netfilter、iptables 使用(6/22)
    Linux时间设置与iptables命令
    负载均衡集群ipvsadm命令及基本用法
    LVS原理详解以及部署
    linux比较两个文件的不同(6/21)
    如何使用sql函数平均值、总数、最小值、最大值
    python中数据类型转换
    使用 getopt 处理命令行长参数
    Mysql常用命令行大全
    C#控制台程序使用Log4net日志组件
  • 原文地址:https://www.cnblogs.com/zxiaoyuer/p/6790679.html
Copyright © 2011-2022 走看看