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

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

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

  • 相关阅读:
    [转]怎么看工作是否到位
    [转]一个合格程序员该做的事情——你做好了吗?
    深入图解虚拟机(一)--一个问题引出的思考
    正则表达式边用边学(一)——分组、捕获
    redhat无法注册RHN的解决办法
    使用jquery扩展表格行合并方法探究
    扩展jquery easyui datagrid编辑单元格
    js点滴知识(1) -- 获取DOM对象和编码
    使用雅虎YUI Compressor压缩JS过程心得记录
    插曲一--记《数据结构与问题求解(Java语言版)(第4版)》翻译问题
  • 原文地址:https://www.cnblogs.com/zxiaoyuer/p/6790679.html
Copyright © 2011-2022 走看看