zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    mysql mysqldump 本地数据库导入本地数据库的命令
    window mysql5.7 zip 安装
    MySQL存储过程详解 mysql 存储过程
    spring batch 读取多个文件数据导入数据库
    spring batch 以游标的方式 数据库读取数据 然后写入目标数据库
    不同浏览器上中文文件名的下载乱码问题
    spring mvc 文件下载 get请求解决中文乱码问题
    SpringMVC上传文件的三种方式
    NSPort
    iOS NSRunloop
  • 原文地址:https://www.cnblogs.com/0xcafedaddy/p/4294516.html
Copyright © 2011-2022 走看看