• javaSE笔记-抽象类


      抽象类存在的意义是为了被子类继承,否则抽象类将毫无意义,抽象类体现的是模板思想,模板是通用的东西。

    抽象类:包含抽象方法的类。

    abstract class 类名字 {

    }

    抽象方法:没有方法体的方法

    修饰符 abstract 返回值类型 方法名 (参数列表);

    抽象类的使用

    继承抽象类的子类必须重写父类所有的抽象方法。否则,该子类也必须声明为抽象类。

    此时的方法重写,是子类对父类抽象方法的完成实现,我们将这种方法重写的操作,也叫做实现方法。

    抽象类的特征

    有得:抽象类得到了拥有抽象方法的能力

    有失:抽象类失去了创建对象的能力

    抽象类的注意事项

    • 抽象类不能创建对象。
    • 抽象类中,可以有构造器,是供子类创建对象时,初始化父类成员使用的。
    • 抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
    • 抽象类的子类,必须重写抽象父类中所有的抽象方法,否则子类也必须定义成抽象类。
    • 抽象类存在的意义是为了被子类继承,抽象类体现的是模板思想。

    模板设计模式:司机开车

    1. 定义开车类的模版:在父类中调用子类重写后的方法
    2. 定义一些固定的内容(开门,点火,刹车,熄火)
    3. 不用的内容定义抽象方法(开车姿势不同)

    Driver.java

     1 public abstract class Driver {
     2     //定义开车的方法
     3     public void drive(){
     4         System.out.println("开门");
     5         System.out.println("点火");
     6         ziShi();//调用的是每个子类重写后的方法
     7         System.out.println("刹车");
     8         System.out.println("熄火");
     9     }
    10 
    11     //新司机和老司机开车的方式不同,定义为抽象方法
    12     public abstract void ziShi();
    13 }

    NewDriver.java

    //定义新司机类,是司机的一种,继承司机类
    public class NewDriver extends Driver {
        @Override
        public void ziShi() {
            System.out.println("新司机开车姿势:双手紧握方向盘!");
        }
    }

    OlederDriver.java

    //定义老司机类,是司机的一种,继承司机类
    public class OldDriver extends  Driver{
        @Override
        public void ziShi() {
            System.out.println("老司机开车姿势:右手握方向盘左手抽烟!");
        }
    }

    测试类Demo01Driver.java

    public class Demo01Driver {
        public static void main(String[] args) {
            //创建新司机对象
            NewDriver nd = new NewDriver();
            nd.drive();
    
            System.out.println("-----------------");
    
            //创建老司机对象
            OldDriver od = new OldDriver();
            od.drive();
        }
    }

    运行结果

  • 相关阅读:
    js面对对象和jQuery的使用
    感知器PLA算法
    MSP430G2系列学习笔记
    数学建模——规划问题
    51单片机学习(一)
    打靶法求解两点边值问题
    GAOT工具箱(遗传算法)的应用
    数学建模方法
    关于mysql 5.7 版本登录时出现错误 1045的随笔
    oracle复习(二)
  • 原文地址:https://www.cnblogs.com/love-xiaowu/p/12687140.html
Copyright © 2020-2023  润新知