• java中抽象类的概念


    抽象类

    public abstract class A{}

    抽象类中可以定义抽象方法和普通方法;抽象方法指的是没有方法体的方法

    public abtract void function();//抽象方法
    

    由于抽象方法没有方法体,所以不能够直接被调用,那么抽象类就不能够被直接实例化产生的对象,所以抽象类:

      1.抽象类必须有子类(子类可以是抽象类也可以是普通类)

      2.非抽象类继承抽象类必须覆写抽象类中的所有抽象方法,一个子类只能够继承一个抽象类,单继承局限;

      3.抽象类的实例化方式通过子类完成,采用向上转型的方式;  

    由于抽象类中可以存在一些属性,所以允许存在构造方法,在对子类实例化的时候,依然会先调用父类构造,后调用子类构造

    外部的抽象类不可以使用static定义,内部抽象类可以使用static定义,相当于外部类;

    在一个类的构造执行之前,其内部的属性的值都是其对应类型的默认值

    abstract class A{
        public A(){ // 第二步
            this.print();
        }
        public abstract void print();//第三步:寻找子类print()
    }
    class B extends A{
        private int num;
        public B(int num){
            this.num = num;
        }
        public void print(){ //第三步:此时构造方法还没执行
            System.out.print(num);
        }
    }
    public class Test{
        public static void main(String args[]){
             new B(30);//输出的值是:0   第一步
        }
    }

    简单模板设计模式

  • 相关阅读:
    tech 浅谈 Yield
    Python strip lstrip rstrip使用方法
    Python strip lstrip rstrip使用方
    Python 的学习脚印(1)
    python中列表的赋值
    python的re模块的sub方法
    Python的异常处理机制
    [python] shutil模块
    【ActiveMq】启动amq时遇到java.net.URISyntaxException: Illegal character in hostname at index处理方法
    【sql总结】
  • 原文地址:https://www.cnblogs.com/hu1056043921/p/7326326.html
Copyright © 2020-2023  润新知