手表网站欧米茄价格,为什么要域名备案,网站建设需要提供的资料,网站策划书如何做文章目录 概要封装多态抽象类接口内部类为什么需要内部类 概要
面向对象是一种编程范式或设计哲学#xff0c;它将软件系统设计为由多个对象组成#xff0c;这些对象通过特定的方式相互作用
封装
将数据和操作数据的方法封装在一个类中#xff0c;并通过访问修饰符控制对… 文章目录 概要封装多态抽象类接口内部类为什么需要内部类 概要
面向对象是一种编程范式或设计哲学它将软件系统设计为由多个对象组成这些对象通过特定的方式相互作用
封装
将数据和操作数据的方法封装在一个类中并通过访问修饰符控制对类内部数据的访问常用访问修饰符有private、public、protected。
多态
多态Polymorphism是面向对象编程的一个核心特性指的是同一个方法或对象在不同的情况下表现出不同的行为。简单来说多态允许你通过父类或接口的引用来调用子类或实现类的对象方法从而实现不同对象的行为表现。
抽象类
包含抽象方法的类不能实例化只能被继承 定义 抽象类是不能被实例化的类。它可以包含抽象方法没有方法体的方法和具体方法有实现的方法 用途 表示一种“is-a”关系它可以包含共有属性和行为可以有构造函数、字段、已实现的方法和抽象方法。 继承 一个类只能继承一个抽象类因为 Java 不支持多重继承。 适用场景 当有一些通用的方法实现或者需要维护一些相关的状态时。 abstract class Animal {abstract void makeSound(); // 抽象方法void sleep() { // 具体方法System.out.println(Sleeping...);}
}
接口
定义一组方法但不提供实现通过关键字implements来实现接口 定义 接口是一个完全抽象的类结构。它只包含抽象方法Java 8以后可以包含默认方法和静态方法 什么Java的默认方法 是 Java 8 引入的一种新特性允许在接口中为方法提供默认实现提供增强功能的同时不会破坏默认实现。 用途 表示一种“can-do”关系定义行为但不实现任何行为。默认情况下接口中的方法是 public 和 abstract 实现 一个类可以实现多个接口弥补Java中多继承的不足。 适用场景 当需要不同类实现相同的方法而无需共享行为或状态
主要区别
内部类
成员内部类
class OuterClass {private String outerField Outer field;class InnerClass {void display() {System.out.println(outerField); // 访问外部类的私有成员}}void createInnerClass() {InnerClass inner new InnerClass();inner.display();}
}public class Main {public static void main(String[] args) {OuterClass outer new OuterClass();outer.createInnerClass();}
}
静态内部类
class OuterClass {private static String staticField Static field;static class StaticInnerClass {void display() {System.out.println(staticField); // 只能访问外部类的静态成员}}void createStaticInnerClass() {StaticInnerClass inner new StaticInnerClass();inner.display();}
}public class Main {public static void main(String[] args) {OuterClass.StaticInnerClass inner new OuterClass.StaticInnerClass();inner.display();}
}
匿名内部类
interface MyInterface {void display();
}public class Main {public static void main(String[] args) {MyInterface obj new MyInterface() {Overridepublic void display() {System.out.println(This is an anonymous inner class.);}};obj.display();}
}
为什么需要内部类
主要是减少不必要的内文件其次是更具有组织性类之间更加紧凑其次一定程度上可以减少内存消耗。但是更难维护了。