Java面向对象编程(OOP)是一种编程范式,它通过类和对象的概念来组织代码。以下是一些Java面向对象编程的高级概念:
1. 继承(Inheritance)
继承是面向对象编程中的一个基本概念,它允许一个类继承另一个类的属性和方法。
class Animal {
void eat() {
System.out.println("This animal eats food.");
}
}
class Dog extends Animal {
void bark() {
System.out.println("The dog barks.");
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.eat(); // 调用从Animal类继承的方法
dog.bark(); // 调用Dog类自己的方法
}
}
2. 多态(Polymorphism)
多态允许一个接口或父类被多个子类实现或继承,从而在运行时可以表现出不同的行为。
class Animal {
void makeSound() {
System.out.println("Some generic animal sound");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Bark");
}
}
class Cat extends Animal {
@Override
void makeSound() {
System.out.println("Meow");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.makeSound(); // 输出 "Bark"
myCat.makeSound(); // 输出 "Meow"
}
}
3. 抽象类和接口(Abstract Classes and Interfaces)
抽象类和接口是实现抽象和多态的重要工具。
抽象类
抽象类不能被实例化,只能被继承。
abstract class Animal {
abstract void makeSound();
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Bark");
}
}
接口
接口定义了一组方法,实现接口的类必须实现这些方法。
interface Animal {
void makeSound();
}
class Dog implements Animal {
@Override
public void makeSound() {
System.out.println("Bark");
}
}
4. 内部类(Inner Classes)
内部类是定义在另一个类内部的类。
class OuterClass {
int x = 10;
class InnerClass {
int y = 5;
}
}
public class Main {
public static void main(String[] args) {
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
System.out.println(inner.y + outer.x); // 输出 15
}
}
5. 匿名内部类(Anonymous Inner Classes)
匿名内部类是没有名字的内部类,通常用于实现接口或继承抽象类。
interface Animal {
void makeSound();
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Animal() {
@Override
public void makeSound() {
System.out.println("Bark");
}
};
myDog.makeSound(); // 输出 "Bark"
}
}
6. 枚举(Enums)
枚举是一种特殊的数据类型,用于定义一组常量。
enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
public class Main {
public static void main(String[] args) {
Day today = Day.MONDAY;
System.out.println(today); // 输出 "MONDAY"
}
}
这些是Java面向对象编程的一些高级概念,掌握这些概念可以帮助你更好地设计和实现复杂的应用程序。