Java基础——面向对象的特征 面向对象有哪些特征封装、抽象、继承、多态1.封装封装就是指隐藏对象的属性和实现细节将对象的数据、属性、行为、方法等组合到一个单一的单元中并通过访问修饰符控制成员属性的访问和修改权限再通过特定公开的方法比如getter和setter方法暴露外面访问。比如以下代码public class User{ //使用private修饰字段实现封装 private String name ***; //提供公共的访问方法getter public String getName(){ return name; } //提供公共的修改方法setter public void setName(){ this.name name; } }name属性被private封装起来外面只能通过对象的getName方法才能访问通过对象的setName方法才能进行修改。2.抽象抽象就是对同一个目标的共有的属性、特征、方法、功能、行为等进行抽取并归纳总结它是一种将复杂现实简化为模型的过程它关注的是对象的行为而不用关注具体的实现细节。在面向对象编程中抽象主要通过抽象类和接口来实现的抽象类是不能被实例化的他会包含一些抽象方法方法和具体实现的方法。接口则是一种特殊的抽象类型一般仅包含抽象方法的声明在Java8中可以包含默认方法和静态方法实现。抽象可以在不知道具体实现的情况下编程提高了代码的灵活性和扩展性。比如下面的代码/** *抽象类动物 */ public abstract class Animal{ //抽象方法由子类实现 abstract void eat(); //具体方法可以复用 public void sleep(){ System.out.println(动物在睡觉); } } /** *接口可飞的 */ public interface Flyable{ void fly(); } /** *具体类狗继承动物不实现接口 */ public class Bird extends Animal{ Override void eat(){ System.out.println(狗吃骨头); } } /** *具体类鸟继承动物实现接口 */ public class Bird extends Animal implements Flyable{ Override void eat(){ System.out.println(鸟吃虫子); } Override public void fly(){ System.out.println(鸟在飞); } }通过抽象类和接口结合可以实现灵活多变的类层级结构同时解耦业务逻辑是架构设计中非常常见的做法。3.继承继承是一种实现代码重用的机制允许一个类继承另一个类的成员和方法使得子类也能具有父类相同的行为。继承是通过extends关键字实现的/** *父类动物 */ public abstract class Animal{ //抽象方法由子类实现 abstract void eat(); //具体方法可以复用 public void sleep(){ System.out.println(动物在睡觉); } } /** *子类狗继承动物 */ public class Bird extends Animal{ Override void eat(){ system.out.println(狗吃骨头); } }Java类之间只能实现单继承接口之间可以实现多继承。4.多态多态即【多种形态】指同一个行为在不同的情况下多种不同的表现形式或形态主要体现为同一个接口或父类的引用指向不同的实现对象并能够在运行时动态决定调用的具体实现这使得程序有更好的灵活性和可扩展性。比如下面的代码public class Test{ public static void main(String[] args){ //父类引用指向子类对象向上转型 Animal animal new Dog(); //调用的是子类的重写方法体现多态行为 animal.eat();//输出狗吃骨头 } }通过父类引用变量指向子类时当调用父类的方法时它实际上会根据实际对象的类型去调用子类中的方法所以输出的是狗吃骨头而不是动物吃饭。