JAVA小白学习第四天心得-----单例模式,重写。多态和抽象类

前言:本次学习的主要内容有:单例模式,继承,重写,多态,接口,抽象类,super;

其中单例模式,多态中循环输出的方法还是有点抽象得多多理解

一,单例模式

单例模式的目的是为了一个类中只有一个对象输出;

实现单例模式的方法也很简单,可分为两种;

1,懒汉式写法;

首先私有化一个函数(也就是私有化一个构造器);private+类名(){};

定义一个类方法(也就是定义一个函数用于接收单例对象)用于获取单例对象;public+static(可以在测试类不用创建对象直接调用)+类名(定义一个类名类型的返回值)+函数名(){

由于无法知道是否为一个对象,所以在这里还要设置一个if判断语句

if(属性名==null)

属性名=new 类名;(重新创建一个该类的对象)};

定义一个该类类型的属性;private+static+类名+属性名;

最后进行返回;return 属性名;

2,饿汉式写法;

这种写法是直接省去了if判断过程,直接再用类名定义一个属性的时候直接创建一个对象;其他都不用变,只是将懒汉式方法的if判断过程直接省略,然后再用类名赋值时就可以直接创建对象了;

二,继承;

继承相对来说比较好理解;顾名思义继承就是有一个父类,一个子类;

1.当你在父类创建属性,创建方法时使用extends就可以继承;

2.需要注意的是在使用继承时,被private所修饰的方法和属性是不可以被继承的

3.除了继承父类的属性和方法,子类自己还可以拥有自己的属性和方法;

4,当你继承父类的属性和方法后,调用时会先查看子类有没有,在寻找父类;

三,super;

super是一个可以直接调用父类的关键字;使用super可以直接先调用父类的方法或者属性;

子类实例化的过程中,父类构造器先被调用,然后再调用子类的构造器 子类实例化的过程中,父类构造器先被调用,然后再调用子类的构造器

super()的调用要放在第一行。

四,重写

非静态非private非final;不能重写

重写是为了当父类的方法已经无法满足子类的需求了,所以需要子类进行函数重写;

然后想调用重写的方法,可以在子类中创建一个方法,在这个方法中可以使用this,super关键字进行调用;

五,多态

多态,顾名思义就是创建许多类,然后继承一个父类,并可以重写父类的方法

想要表示出来,可以使用数组循环;首先由于子类都继承一个父类,那就可以创建一个父类类型的数组;父类名+数组名称【】={new  子类类名};

使用一个for循环将创建的对象输出来;for(。。。){

封装的方法名(数组名【i】);

然后封装一个方法;public static void  方法名称(父类类名    传一个参数名称){

参数名称.子类方法名();

}

多态还有一个思想就是可以直接使用父类类名去创建一个子类对象;

但是要注意的是,创建完对象后;

调用时,属性会直接调用父类的属性

方法则是调用子类重写的方法;

六,抽象类;

只是定义一个模板;定义方法时还不能有方法体{};

抽象类在calss前加上abstract使该类成为抽象类;抽象方法也必须加上abstract,在抽象类中也可以有普通的方法;

抽象类中不能定义属性;

  1. 抽象类不能实例化,即不能创建对象,只能被继承,然后实例化。

  2. 继承抽象类的非抽象类必须实现抽象方法。

  3. 抽象类中可以没有抽象方法,有抽象方法的类一定是抽象类。

  4. 抽象类可以继承抽象类,可以不用实现抽象方法。

  5. 抽象的方法不能private,final,static修饰。

七,接口(interface);

  1. 接口不能实例化,需要有类(重写)使用implements来实现接口,并且实现接口的抽象方法。定义方法void+方法名();

  2. 接口中的方法默认是抽象的。

  3. 接口的方法不能使用private和final、static修饰。

  4. 接口可以多继承。抽象类只能单继承

  5. 接口可以定义常量,常量默认会带public static final 。该常量不能修改,一般我们通过【接口名.常量】来访问。

八,接口与抽象类的差别;

抽象类只能单继承,而接口可以实现多继承,例如,门可以安装一个防盗系统,但并不是所有门都要这时如果是抽象类定义的话,那么所有要继承这个抽象类的子类都得重写这个警报方法。

而如果是接口就不一样,接口可以直接在单独创建一个警报接口如果门需要的话,就只要加上这个接口就可以了,如果不需要,就不用加,照样可以实现正常门的功能;

!!!!!jdk在1.8版本后,接口可以有方法体,但是得在前面加上static或者dafult关键字进行修饰;dafult关键字修饰需要创建对象才能接受

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值