栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

面向对象语言三大特征--封装,继承,多态

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

面向对象语言三大特征--封装,继承,多态

一.封装

   封装—该隐隐,该露露

       将类的属性私有化,同时提供公共(public)方法来获取(get)和设置(set)方法

封装 即信息隐藏,利用抽象类,将数和操作封装到一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型内部,尽可能隐藏细节,只保留一些对外接口

      用户无需知道细节,只需要通过接口访问对象

一个对象对象它所封装的是自我属性和方法,不需要其他对象就可完成自己的操作

四大好处:

1.良好的封装能减少耦合(两个或两个以上体系通过互相作用而彼此影响以至联合起来)

2.类内部结构可以自行修改

3.对成员进行更精确的控制

4.隐藏信息,实现细节

public class Person{
     
     private String name;
     private int age;
     
     

    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;
    }
}
二.继承 (一)好处:

1.减少代码冗余,提高代码复用性

2.便于功能扩展

3.为之后多态性的使用提供前提

(二)格式:

 

class A extends B {   

       //extends意为 延伸,扩展

  }

A :子类,派生类,subclass

B :父类,超类,基类,superclass

  1. 体现:

    一旦子类A继承B后,子类A中就获取了父类B中声明的结构(所有属性和方法),特别,父类中声明为private的属性或方法,子类继承后,任然认为获取到所有属性及方法,只是应为封装性的影响,使得子类不能直接调用父类的结构 .

  2. 子类继承父类后,还可以声明自己特有的属性和方法,实现功能拓展

(三)规定:

1.一个类可以被多个子类继承

2.一个类只能有一个父类(java中类的单继承性)

3.子类和父类是相对的,可多层继承

4.子类直接继承的称为直接父类,间接继承的称为间接父类

5.子类继承父类后,就获取了直接父类及间接父类中所有声明的属性和方法

(四)注意 :

1.如果未显示声明一个父类,则此类继承于java.lang.Object类

2.所有的java类都直接或间接继承于java.lang.Object类,意味着所有的java类都具有java.lang.Object的功能

public class Person{
    
    public void display(){
        System.out.println("Play Preson");
    }
    
    static void display(Person person){
        person.display();
    }
}

public class Husband extends Person{     //Husband类继承Person类
    public static void main(String[] args){
        Husband husband = new Husband();
        Person.display(husband);      //向上转型,在下面详解
    }
}
三.多态

①理解:

  一个事物的多种形态

②何为多态:

对象的多态性: 父类的引用指向子类的对象(子类的对象赋给父类引用)

  Animal a = new Dog();

编译期 a.eat() a的类型为Animal类,调用抽象的eat()方法

运行期 a指向的是一个Dog对象,运行Dog重写的eat()方法

③多态的使用:

 虚拟方法调用

有了对象多态性后,编译只能调用父类中声明的,但运行时执行的是子类重写父类的

④使用前提:

1.有类的继承关系

2.有方法的重写

3.父类的引用指向子类的对象

⑤对象的多态性只适用于方法,不适用于属性(编译执行都看左边)

总结:

①多态:编译看左边,执行看右边

②静态方法:编译,执行都看左边

③成员变量:编译,执行也都看左边

拓展:

有了对象的多态后,内存中实际上加载了子类特有的属性和方法,但由于变量声明为父类,导致编译时只能调用父类,子类所特有的不能调用

如何解决?

① 向下转型或向上转型

向上: 多态

向下: 强制类型转换,可能会出现 Class Exception 异常

如何防止出现异常?

②Instanceof 关键字

用法: a instanceof A

作用: 判断a是否是A的实例.

若是,则返回true;不是,则返回false

适用情形: 为避免向下转型时出现异常,一旦返回true,就向下转型;返回false,则不转型

 注:

    若a instanceof A返回true, a instanceof B 也返回true

    其中A为B的子类

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/459504.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号