一、 封装继承多态的概念
封装:封装是将对象的属性和方法封装在一起,对外界隐藏对象的具体实现细节,只暴露必要的接口。
继承:通过继承,子类可以继承父类的属性和方法,重用父类的代码,并可以扩展或修改父类的功能。
多态:接口可以有多种不同的实现方式。多态体现在方法的重写和重载上
二、 重写 重载的区别
重写:子类继承父类,重写父类中的方法,但参数列表相同。
重载:一个类里不同方法,可以同名,但参数列表不同。
三、 继承(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(),重写重载区别,继承接口的区别