zoukankan      html  css  js  c++  java
  • java基础之抽象类的介绍

    抽象类的特点:
    1.当方法只有声明没有具体实现的时候,需要用abstract修饰符修饰。抽象方法必须定义在抽象类当中,所以抽象类也需要用abstract修饰
    2.抽象类不可以被实例化,为什么呢?
         因为调用抽象方法没有意义
    3.抽象类的子类必须覆盖所有的父类的抽象方法之后,子类才能够被实例化,否则子类也还是抽象类;
     
    class A extends chouxiang {
         @Override
         void bark() {//只有覆盖了bark()方法,才能将A类实例化
               // TODO Auto-generated method stub
               System.out.println("你说呢");
         }
    }
    public abstract class chouxiang {
         abstract void bark();//必须让子类重写才有意义
         private int bark(int a, int b) {//抽象类中可以有非抽象方法,即不需要子类必须重写该方法
               return a + b;
         }
         public static void main(String[] args) {
               A a = new A();
               a.bark();//调用的是重写的无参的bark()方法
         }
    }
     
    • 抽象类中有构造函数吗?
         有,用于对子类的初始化
    • 抽象类中可以没有没有抽象方法吗?
         可以,但是很少见,目的就是不让子类创建对象
    • 抽象类不可以和哪些关键字使用
         1.private:父类中的private修饰的方法对于子类不可见,即子类无法对方法进行覆盖
         2.static:当使用static修饰的时候,就可以直接使用类名调用该方法了,那就不用让子类进行实现了;除此之外,即便直接调用了也只是一个方法声明,并没有意义。
         3.final:abstract的意义在于让子类对修饰的方法进行覆盖,但是final却是不让方法进行覆盖,两者矛盾
    • 抽星类一定是个父类吗
         是的,因为需要其子类覆盖其方法才有意义
         
  • 相关阅读:
    高并发第八弹:J.U.C起航(java.util.concurrent)
    高并发第七弹:不可变对象及常用的工具类
    高并发第六弹:线程封闭(ThreadLocal)
    分布式爬取链家网二手房信息
    scrapy CrawlSpider爬取猎云网文章数据
    selenium实现12306网站自动抢票
    王者荣耀官方壁纸爬取
    使用 vsftpd 服务传输文件
    使用 Apache 服务部署静态网站
    iptables 与 firewalld 防火墙
  • 原文地址:https://www.cnblogs.com/shenzhouyh/p/6201291.html
Copyright © 2011-2022 走看看