java 封装继承多态 重写重载 继承接口 访问权限 super

一、 封装继承多态的概念

封装:封装是将对象的属性和方法封装在一起,对外界隐藏对象的具体实现细节,只暴露必要的接口。

继承:通过继承,子类可以继承父类的属性和方法,重用父类的代码,并可以扩展或修改父类的功能。

多态:接口可以有多种不同的实现方式。多态体现在方法的重写和重载上

二、 重写 重载的区别

重写:子类继承父类,重写父类中的方法,但参数列表相同。

重载:一个类里不同方法,可以同名,但参数列表不同。

三、 继承(extends)接口(interface)的区别

继承与接口(interface)的区别:继承是一种代码复用的方式,允许子类继承父类的属性和方法。接口它定义了一组方法的契约,而不包含实际的方法实现。一个类只能直接继承一个父类。一个类可以有多个接口。可以使用接口实现多重继承的效果。

接口中可以定义抽象方法、常量和默认方法。抽象方法是一种没有具体实现的方法,需要在实现类中进行重写。常量是接口中的常量字段,需要使用public static final修饰。默认方法是在接口中可以提供默认实现的方法,使用default关键字进行修饰。

接口 例子

interface Flyable {
    void fly();
}

interface Swimmable {
    void swim();
}

class Bird implements Flyable {
    @Override
    public void fly() {
        System.out.println("Bird is flying.");
    }
}

class Fish implements Swimmable {
    @Override
    public void swim() {
        System.out.println("Fish is swimming.");
    }
}

class Duck implements Flyable, Swimmable {
    @Override
    public void fly() {
        System.out.println("Duck is flying.");
    }

    @Override
    public void swim() {
        System.out.println("Duck is swimming.");
    }
}

public class Main {
    public static void main(String[] args) {
        Flyable bird = new Bird();
        bird.fly(); // Output: Bird is flying.

        Swimmable fish = new Fish();
        fish.swim(); // Output: Fish is swimming.

        Duck duck = new Duck();
        duck.fly(); // Output: Duck is flying.
        duck.swim(); // Output: Duck is swimming.
    }
}

四、 访问权限修饰符

访问权限修饰符
包访问权限:也就是默认访问权限,就是啥修饰符都没有的。
①public都能访问到
②包访问权限和它名字一样,只有一个包的才行,哪怕另一个包的子类都不行。
③protected同一包能访问,另外包的子类能访问(记住和继承有关,就能记住另外包的子类访问)
④private 类内部

五、super关键字

super:
在 Java 中,super 关键字用于引用父类的成员(包括属性和方法),以及调用父类的构造方法。

class Animal {
    String name = "Animal";
}

class Dog extends Animal {
    String name = "Dog";

    public void printName() {
        System.out.println("Name in Dog: " + name); // 输出子类的属性
        System.out.println("Name in Animal: " + super.name); // 输出父类的属性
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.printName();
    }
}

输出:

Name in Dog: Dog
Name in Animal: Animal

protected,super(),重写重载区别,继承接口的区别

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值