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面向对象的三大特点的主要内容,如果未能解决你的问题,请参考以下文章