A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈捷旋 中级黑马   /  2015-3-25 10:37  /  1192 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
需求:获取一段程序运行的时间
原理:获取程序开始和结束的时间并相减即可。

获取时间:System.currentTimeMillis();

当代码完成优化后,就可以解决这类问题

这种方式就是:模版方法设计模式

什么是模版方法呢?
在定义功能时功能一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分,
那么这时就将不确定的部分暴露出去,由该类的子类去完成

*/

class GetTime
{
        public final void getTime()  //加final是为了没法改变和覆盖 这方法不给改
        {
                long star=System.currentTimeMillis();
               
                runcode();

                long end=System.currentTimeMillis();

                System.out.println("毫秒:"+(end-start));
        }
        public abstract void runcode();  //一个函数,打印的 没具体内容,所以是抽象类
}

class SubTime extends GetTime
{
        public void runcode()     //子类里面的一个普通程序
        {
                for(int x=0;x<4000;x++)
                {
                        System.out.print(x);
                }
        }
}

class TemplateDemo
{
        public static void main(String[] args)
        {
                GetTime gt=new GetTime();
                gt.getTime();
        }
}

/*
接口:初期理解,可以认为是一个特殊的抽象类
      当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示
class用于定义类
interface用于定义接口

接口定义时,格式特点:
1,接口中常见定义:常量,抽象方法
2,接口中的成员都有固定修饰符
    常量:public static final
    方法:public abstract
记住:接口中的成员都是public的

接口:是不可以创建对象的,因为有抽象方法
需要被子类实现,子类对接口中的抽象方法全都覆盖后

接口可以被类多实现 也是对多继承不支持的转换形式,java支持多实现

记住:一个类继承一个类还可以实现许多的接口
*/

案例:

interface Inter
{
        public static final int NUM=3;  //常量,不能变
        public abstract void show();    //方法,抽象类的
}

interface InterA
{
        public abstract void method();
}

class Test implements Inter,InterA   //子类实现多接口接口
{
        public void show(){}           //覆盖接口方法
        public abstract void method(); //覆盖接口InterA方法
       
}

class InterfaceDemo
{
        public static void main(String[] args)
        {
                Test t=new Test();
                System.out.print(t.NUM);
                System.out.print(Test.NUM);   //这三个打印的都是一样的是3
                System.out.print(Inter.NUM);
               
        }
}

多继承案例:

interface A
{
        void methodA();
        //int show();   这是绝对不允许出现的因为和接口B类型不同
}


interface B
{
        void methodB();
        //boolean show()     这是绝对不允许出现的因为和接口A类型不同
}                            //而A 和B又被类D多实现,系统会报错

interface C estends B,A
{
        void methodC();
}


class D implementd C
{
        public void methodA(){};  //覆盖要记得加public
        public void methodB(){};
        public void methodC(){};
       
}


当子类继承父类是具备父类的全部功能
子类也可以实现一些接口,但不是强制的

1 个回复

倒序浏览
大家加油啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马