Java 面向对象三大特征

 面向对象三大特征:

  • 封装性
  • 继承性
  • 多态性

1. 封装性

 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只给特定的对象或其他类进行访问,即使用不同的访问统治权限使类被不同的对象访问,类中的方法属性也可单独使用访问控制权限进行修饰。

 简而言之就是,使类对外部保持整洁,只留有主要的接口进行类业务逻辑的使用。

 没有进行封装的类,如下所示:

class Person {
    public String name;
    public int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

 进行了封装的类:

class Person {
    // 将属性私有
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 私有属性只能通过get,set方法进行访问
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

2. 继承性

 继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

 继承的主要作用在于:在已有功能基础上进行功能的扩充,对类进行扩充,代码的复用。

3. 多态性

 所谓多态就是指一个类实例的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。(利用多态可以得到良好的设计)

 多态表现为以下两点:

  • 方法的多态

 方法的重载:

 同一个方法名可以根据参数数量和类型的不同重载为不同的方法。

 方法的覆写:

 同一个父类的方法,不同的子类实例化,其方法的实现也可能不同。

  • 对象的多态

 对象的多态主要体现在抽象类和接口,可分为向上转型和向下转型。

 向上转型:

SuperObj superName = new ChildObj();

 发生向上转型一般是为了参数的统一。

 向下转型:

ChildObj childName = new SuperObj();

 发生向下转型一般是为了得到子类扩充的方法。

猜你喜欢

转载自blog.csdn.net/weixin_40739833/article/details/81192736