java进阶(面向对象)

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面向对象编程的一些高级概念,掌握这些概念可以帮助你更好地设计和实现复杂的应用程序。

 

  • 15
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值