• Java抽象类


    1.抽象类的基本概念

    a.很多具有相同特征的对象可以抽象为一个类;很多具有相同特征和行为的类可以抽象为一个抽象类

    b.使用abstract关键字声明的类为抽象类

    2.抽象类的规则

    a.抽象类可以没有抽象方法,有抽象方法的类必须是抽象类

    b.非抽象类继承抽象类必须实现所有抽象类的方法

    c.抽象类可以有方法实现和属性

    d.抽象类不能被实例化

    e.抽象类不能被声明为final  区别:抽象类可以被子类继承 但是最终类不能被子类继承

    f.抽象类可以有构造方法    会有显示但是没有实例化对象 原因是子类在实例化的时候调用了父类的构造方法 (调用构造方法不一定是实例化对象)

    例子:

     1 public class AbstractTest {
     2     public static void main(String[] args) {
     3     Goddess g = new Goddess();
     4     g.setName("彤彤");
     5     g.say();
     6     System.out.println("--------------------------");
     7     UglyWomen u = new UglyWomen();
     8     u.setName("小包子");
     9     u.say();
    10 }
    11 }
    12 
    13 //女人
    14 //abstract 表示声明一个抽象类
    15 abstract class Women{
    16     private String name;
    17     public String getName() {
    18         return name;
    19     }
    20     public void setName(String name) {
    21         this.name = name;
    22     }
    23     
    24     public abstract void say();   //抽象类的方法不是具体的     (只有声明实现)
    25     public abstract void method();
    26 }
    27 
    28 class Goddess extends Women{    //一个类继承抽象类 必须全部实现抽象类中的方法
    29     //实现父类的抽象方法 没有 abstract 修饰
    30     public void say(){
    31     System.out.println("我是女神,我是"+getName());    
    32     }
    33     public void method(){}        //空实现
    34 }
    35 
    36 class UglyWomen extends Women{
    37     //实现父类的抽象方法 没有 abstract 修饰
    38     public void say(){
    39     System.out.println("我是丑女,我是"+getName());    
    40     }
    41     public void method(){}
    42 }
  • 相关阅读:
    使用Layui上传图片,并进行压缩(非原创,证实可用)
    mysql 存储过程及事件
    Redis一些简单的笔记
    RIOT 技术笔记-01 RIOT介绍
    杂七杂八-ubuntu安装eclipse
    杂七杂八-sqlyog连接mysql错误码2058
    杂七杂八-Mysql8.0忘记root密码
    RIOT学习笔记-01 cygwin安装
    Ubutun-安装远程桌面
    中间件-RocketMQ 02 Docker下的安装
  • 原文地址:https://www.cnblogs.com/0xcafedaddy/p/4294516.html
Copyright © 2020-2023  润新知