Java面向对象的三大特点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面向对象的三大特点相关的知识,希望对你有一定的参考价值。

Java面向对象的三大特点:继承、封装、多态

  继承

继承的起源

使用“is a”关系判断继承

Java中继承的实现

关键字:extends

实例化子对象

单继承和多继承

子类继承父类、父类还可以继承上一个类,称为传递继承。

Dog extends Animal;

 Animal extends ShengWu;

所有类的根类Object

即object类是所有类的父类,object中所有的方法其他类都可以直接调用

方法重写

 父类方法   Public void jiao(){system.out.print(“叫”)}

子类方法    Public void jiao(){system.out.print(“汪汪叫”)}

super关键字

super. 父类属性

this关键字

this.当前类属性

final关键字

 final所修饰的类不可以被继承;所修饰的方法不可以被重写  

实例化过程

调用父类的构造器

  封装

访问修饰符

Public公共的:在任何一个地方都可以调用

protected  受保护的:在同意包中可以访问,或者不同胞中原类的子类中可以调用

default 默认的:同一包中可以使用,不写出修饰符

private 私有的:只有当前类可以使用

封装可以提高代码的重用性,提高代码的可移植性,可以隐藏实现细节

 修饰类只能是public或者default

理解静态成员

static 静态的

静态方法不能访问实例成员

静态初始化块

    static{

        语句体;

     }

实例初始化块

静态块在对象实例化的时候只会执行一次,所以可以用来给定对象的初始值

Javabean原则:实体类属性通常使用private修饰,通过set和get函数去设置和获取数据。

  多态

 向上转型自动转换  例如:Animal dog=new Dog();

父类对象的引用指向了子类对象的实例,向上转型后子类多特有的属性和方法就无效了。

如果子类重写了父类的方法,则调用子类的方法。

向下转型,类型还原      例如:Animal animal=new Dog();

子类特有的属性和方法就还原了  Dog dog=(Dog)animal;

instanceof           animal instanceof   Dog

在多态中,子类可以调用父类的所有方法(父类私有方法除外)。

abstract抽象的,不具备实际功能实现的,用来规范子类,只能修饰方法,抽象方法只能定义在抽象类里面,抽象类不能被实例化。子类必须实现这个方法,即子类必须重写父类的抽象方法。

public abstract class Animal{   代码体         }

  接口

接口里面都是抽象方法,接口必定是抽象类

接口声明

    public interface 接口名{          }

接口实现

    接口需要重新定义一个类来实现里面的方法

    public class 类名 implements 接口名

    如果是子类来实现接口:

    public class 子类名 extends 父类名 implements 接口名{  }

接口应用

接口可以用于暴露类的行为,允许类的用户通过接口的实现来使用接口中的方法。

接口可以用于强制一个类具有某些行为。

在接口中声明成员变量

接口可以包含成员变量,但是成员变量只能用static和final关键字共同来修饰。由于接口不能被实例化,所以成员变量必须被声明为static,而声明为final是为了程序的可靠性。

Final属性在声明时就必须赋值。

接口继承

    接口的继承同样是通过关键字extends

    接口可以同时有多个。 implements 接口1,接口2…接口n

接口与多态

接口与抽象类的区别

    二者都不能被实例化,用于被其他类实现或者继承。

    二者都可以包含抽象方法,实现接口或者继承抽象类的子类都必须实现这些抽象方法。

区别:接口只能包含抽象方法,而抽象类可以包含普通方法。

      接口不能定义静态方法,而抽象类可以定义。

      接口只能定义静态常量属性,不能定义普通属性。而抽象类可以定义普通属性,也可以定义静态常量属性。

     接口不包含构造器。抽象类里面的构造器做初始化工作。

     接口中不包含初始化块。而抽象类可以包含初始化块。

一个类最多只有一个直接父类,包括抽象类;但是一个类可以直接实现多个接口,通过实现多个接口来弥补java单继承的不足。

以上是关于Java面向对象的三大特点的主要内容,如果未能解决你的问题,请参考以下文章

面向对象三大特征是啥?

Java面向对象三大特点之继承

Java面向对象三大特征之继承和多态

Java面向对象三大特征

Java基础 | 关于面向对象三大特征与内存回收

java动物特性的面向对象描述 项目