鱼C论坛

 找回密码
 立即注册
查看: 2603|回复: 1

[学习笔记] Java-008抽象类

[复制链接]
发表于 2018-12-22 10:48:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 moc 于 2018-12-22 10:48 编辑

1、抽象类的概念
       在自上而下的继承层次结构中,位于上层的类更具有通用性,甚至可能更加抽象。从某种角度看,祖先类更加通用,它只包含一些最基本的成员,人们只将它作为派生其他类的基类,而不会用来创建对象。甚至,你可以只给出方法的定义而不实现,由子类根据具体需求来具体实现。
抽象方法: 只给出方法定义而不具体实现的方法,抽象方法是没有方法体。
抽象类:   包含一个或多个抽象方法的类。类即使不包含抽象方法,也可以被声明为抽象类,防止被实例化。
关键字:     abstract
  1. import static java.lang.System.*;
  2. public final class Demo{
  3.     public static void main(String[] args) {
  4.         Teacher t = new Teacher();
  5.         t.setName("小明");
  6.         t.work();
  7.       
  8.         Driver d = new Driver();
  9.         d.setName("小陈");
  10.         d.work();
  11.     }
  12. }
  13. // 定义一个抽象类
  14. abstract class People{
  15.     private String name;  // 实例变量
  16.    
  17.     // 共有的 setter 和 getter 方法
  18.     public void setName(String name){
  19.         this.name = name;
  20.     }
  21.     public String getName(){
  22.         return this.name;
  23.     }
  24.    
  25.     // 抽象方法
  26.     public abstract void work();
  27. }
  28. class Teacher extends People{
  29.     // 必须实现该方法
  30.     public void work(){
  31.         out.println("我的名字叫" + this.getName() + ",我正在讲课,请大家不要东张西望...");
  32.     }
  33. }
  34. class Driver extends People{
  35.     // 必须实现该方法
  36.     public void work(){
  37.         out.println("我的名字叫" + this.getName() + ",我正在开车,不能接听电话...");
  38.     }
  39. }
复制代码
2、抽象类的总结
注意:
        1.  抽象类不能被实例化,如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。
        2.  抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
        3.  抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。
        4.  构造方法,类方法(用static修饰的方法)不能声明为抽象方法。
        5.  抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。
抽象类的成员特点:
A:成员变量
        有变量,有常量
B:构造方法
        有构造方法
C:成员方法
        有抽象,有非抽象
abstract不能和哪些关键字共存:
        a:final        ==> 冲突
        b:private   ==> 冲突
        c:static      ==> 无意义

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-5 11:12:37 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 16:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表