美文网首页
9.抽象方法等

9.抽象方法等

作者: 我爱阿桑 | 来源:发表于2021-08-22 13:28 被阅读0次

    1.抽象类

    • 比如声明一个三角形 正方形 长方形的类,他们都有求 面积和周长这些特征,这些公共公共特征应该提取到一个公共的类中,但是在公共类中无法给出具体实现,应该交给自类各自具体实现,那么父类在声明这些方法时,只有方法名,没有方法体。我们把没有方法体的方法,称为抽象方法。规定:有抽象方法的类,必须是抽象类。
    • 不能被实例化
    • 子类必须重写父类方法
    • 被abstract所修饰的类就是抽象类
    [权限修饰符] abstract class 类名{   }
    
    [权限修饰符] abstract class 类 extends 父类 {    }
    
    public  abstract class animal {
       public abstract void run()
     }
    public class cat extends animal {
       public void run(){
           System.print.out("小猫在奔跑");
      }
    }
    public class CatTest{
         public static void main(String[] args){
           Cat c = new Cat();
           // 调用run方法。
           c.run()
    
      }
    }
    

    2.模板设计模式

    当解决某个问题,或者完成某个功能时,主体的算法结构(步骤)是确定的,只是其中的一个或者几个小的步骤不确定,要有使用者(子类)来确定时,就可以使用模板设计模式

    //模板类
    public abstract class CalTime{
        public long getTime(){
            //1、获取开始时间
            long start =  System.currentTimeMills();
            
            //2、运行xx代码:这个是不确定的
            doWork();
            
            //3、获取结束时间
            long end =  System.currentTimeMills();
            
            //4、计算时间差
            return end - start;
        }
        
        protected abstract void doWork();
    }
    
    //模板类
    public class MyCalTime extends CalTime{
        protected void doWork(){
            //....需要计算运行时间的代码
        }
    }
    
    // 测试类
    public class Test{
        public static void main(String[] args){
            MyCalTime my = new MyCalTime();
            System.out.println("运行时间:" + my.getTime());
        }
    }
    

    相关文章

      网友评论

          本文标题:9.抽象方法等

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