了解多态&接口&抽象类&常量&枚举

本文介绍了多态的概念、优缺点以及解决方案,包括方法重写、抽象类的使用、接口的设计、模板方法模式和常量/枚举的特性。讨论了如何在面向对象编程中利用这些特性提高代码的灵活性和扩展性。
摘要由CSDN通过智能技术生成

多态

多态是在继承或者实现情况下的一种现象,存在方法重写,具体表现为对象多态、行为多态,属性没有多态

优点:

     1.在多态形式下,等号左右两边松耦合,更便于修改和维护

     2.定义方法时,使用父类类型的形参,可以接收一切子类对象,扩展性更强、更便利 

缺点: 不能使用子类独有的功能

解决方案:向下转型为具体子类对象

      1.使用父类接收子类对象后,无法调用子类独有的方法,若想调用需要强转

      2.引用类型中需要使用instanceof关键字进行判断是否为该类型,若是再转换

Final

修饰类: 该类不能被继承

修饰方法: 该方法不能被重写

修饰变量: 该变量只能被赋值一次,赋值完后不能被修改

Final修饰基本类型和引用类型的变量区别

 修饰基本类型变量,变量存储的数据不能被改变

 修饰引用类型的变量,变量存储的地址不能被改变,但地址所指向对象中的内容是可以被改变

抽象类 

1.抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类

2.抽象类不能创建对象,仅作为一种特殊的父类,让子类继承并实现

3.一个类继承抽象类,必须重写完抽象类的全部抽象方法,否则这个类也必须定义成抽象类 

4.类该有的成员(成员变量、方法、构造器)抽象类都可以有

public abstract class A {

    public abstract void test();   
}

使用抽象类的好处 

使用抽象类做父类中,抽取相同的代码 

模板方法设计模式 

一个功能的完成需要经过一系列步骤,这些步骤是固定的,但是中间某些步骤具体行为是待定的,在不同的场景中行为不同 

public class Demo {
    public static void main(String[] args) {
          Person p = new Teacher();
          p.work();
    }
}

abstract class Person{

    public final void work(){

        System.out.println("干早饭");

        doSomething();

        System.out.println("干晚饭");
    }

   public abstract void doSomething();
}

class Student extends Person{

    @Override
    public void doSomething() {
        System.out.println("我是学生");
    }
}

class Teacher extends Person{

    @Override
    public void doSomething() {
        System.out.println("我是Teacher");
    }
}

接口 

1.成员变量(接口中的成员变量都是常量, 默认是被public static final修饰的)

2.成员方法(接口中的成员方法都是抽象方法, 默认是被public abstract修饰的) 
3.接口中不能有构造方法和代码块

 JDK8开始,接口中增加了新的方法

 使用default修饰,使用实现类的对象调用

 使用static修饰,必须使用当前接口名调用

 使用private修饰,JDK9开始才有,只能在接口内部被调用

 都会被public修饰

常量 

使用了 static final 修饰的成员变量就被称为常量

作用:通常用于记录系统的配置信息 

枚举 

修饰符 enum 枚举类名{  

     枚举项1 ,  枚举项2, ... ;  

     其他成员…

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值