• Java 抽象类的简单使用


    自己做的一点笔记...

    抽象类:使用关键词 abstract 进行修饰,抽象类不能生成对象(实例化),且含有抽象方法(使用 abstract 进行声明,并且没有方法体)。

    特点:

      1️⃣  抽象类不一定有抽象方法,但是有 abstract 修饰的方法,则其必须是抽象类;

      2️⃣  子类如果继承了抽象类,则必须重写抽象类中的方法;

      3️⃣  抽象类不能定义为 private 因为,它需要通过继承,才能有意义(子类不能修改 private 修饰的类的成员);

      4️⃣  如果子类继承了抽象类,但是没有实现父类的抽象方法,则子类也必须定义为抽象类。

    作用:抽象类,给事物进行抽象,如果一些某些事物拥有同样的行为,就可以通过抽象类来统一进行规范,例如通过定义泛型的抽象类:

    package leetcode.abstructs;
    
    import java.util.List;
    
    /**
     * @todo 抽象类的应用测试
     * @since 9:44 2019/1/29
     * @author hanyf
     */
    public abstract class MyAbstract<T> {
        private List<T> list;
    
        public MyAbstract() {
        }
    
        public MyAbstract(List<T> list) {
            this.list = list;
        }
    
        public void method(){
            for (T t : list){
                doLoop(t);
            }
        }
    
        /**
         * @todo 抽象方法,在实例化调用该类的此抽象方法,并且可以对它进行重写
         * @since 9:51 2019/1/29
         * @author hanyf
         * @params
         * @return
         */
        public abstract void doLoop(T t);
    }
    抽象类
    package leetcode.test;
    
    import leetcode.abstructs.MyAbstract;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class 抽象方法{
        public static void main(String[] args) {
            List<String> list = new ArrayList<>();
            int i = 20;
            while (i>0){
                list.add("I'm String for "+ i);
                i--;
            }
    
            //抽象类的实现
            //重写了抽象类方法实现
            new MyAbstract<String>(list){
                @Override
                public void doLoop(String s) {
                    System.out.println(s);
                }
            }.method();
        }
    }
    main方法
  • 相关阅读:
    按钮组件如何处理点击事件(将原生事件绑定到自定义组件)
    一个简单的transition动画
    根据路由记录(利用matched)动态生成面包屑导航
    assets和static的异同
    Ceph集群概念以及部署
    腾讯质量效能提升最佳实践:智能自动化测试探索和建设
    腾讯WeTest压测大师通过中国计量科学研究院测试认证,获国家级权威认可
    新办公司每年费用
    2
    Leetcode刷题第三题 无重复字符的最长子串
  • 原文地址:https://www.cnblogs.com/mysouler/p/10380718.html
Copyright © 2020-2023  润新知