Java面向对象三大特性
封装、继承、多态。
1、封装
封装就是将对象的属性和行为特征包装到一个程序单元(即类)中,把实现细节隐藏起来,
通过公用的方法来展现类对外提供的功能,提高了类的内聚性,降低了对象之间的耦合性。
2、继承
继承是对原有类的拓展,举例说明:我现在有一个Person类,但是我想要一个学生对象,
他拥有Person类的所有属性和方法,此外他还有学号属性,及上课、写作业等一些方法,
我可以创建一个Student类,但是我不想重复写Person类中已经有了的属性和方法,那么,
此时我就可以用Student类继承Person类,Student类就拥有了Person类里的属性和方法了,
我只需要在Student类里添加另外的新的属性和方法就可以了。Person类就成为父类,
Student类就称为子类。父类和子类之间是一般和特殊的关系,子类是一种特殊的父类。
此外,子类还可以通过重写来改变父类中的方法,重写可以改变方法的返回类型和访问权限,
不能改变方法名称。
3、多态
多态是建立在继承的基础上的,是指子类类型的对象可以赋值给父类类型的引用变量,
但运行时仍表现子类的行为特征。也就是说,同一种类型的对象执行同一个方法时可以
表现出不同的行为特征。
继承扩展知识
Q:java中静态属性和和静态方法的继承问题 以及多态的实质。
首先结论是:java中静态属性和和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏。
静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成的,不需继承机制就可以调用如果子类里面定义了静态方法和属性,那么这时候父类的静态方法 或属性称之为“隐藏”,你如果想要调用父类的静态方法和属性,直接通过父类名.方法名或变量名完成,至于是否继承一说,子类是有继承静态方法和属性,但是 跟实例方法和属性不太一样,存在“隐藏”的这种情况。
多态之所以能够实现是依赖于 继承 接口和 重写 、重载(继承和重写最为关键)。有了继承和重写就可以 实现父类的引用可以指向不同子类的对象。重写的功能是:“重写”后子类的优先级要高于父类的优先级,但是“隐藏”是没有这个优先级之分的。
静态属性、静态方法和非静态的属性都可以被 继承 和 隐藏 而不能够被重写,因此不能实现多态,不能实现父类的引用可以指向不同子类的对象。
非静态的方法可以被继承和重写,因此可以实现多态。
接口中的实现和类中的继承是两个不同的概念,因此不可以说实现接口的子类从接口那里继承了常量和方法