(5)封装继承多态

📅 2026/7/3 18:42:24
(5)封装继承多态
这三个是面向对象的三个特性。主要目的就是为了对代码进行解耦重构。一、封装封装就是将数据和对数据的操作封装在一个类里面从外部不可访问只能通过给出的访问接口对数据进行处理。二、继承人有父子关系、母子关系类也有这么做的目的主要是为了让子类不那么的冗余所有和父类有关系的都能进行继承访问。// 继承的语法publicclassDeriveextendsBase{}Java语法只支持单继承也就是说一个类最多只能有一个父类1、构造函数如果你构造一个子类对象在子类对象初始化之前父类对象要先进行初始化。调用父类构造或者当前类的构造构造函数必须放在第一句publicclassDeriveextendsBase{intb;Derive(){//super()是在子类中调用父类的构造函数//如果一个父类只有默认构造函数super()可写可不写//如果一个父类实现了有参构造这个super()必须显示调用传参super();b1;}}2、this指针this主要指向的是调用对象。主要区分和类成员属性名、方法名相同的变量名、方法名this指针你可以理解为一个隐形的参数传参在每个类方法的第一个参数位置上指向调用的对象publicclassBase{inta;// 在这里就是主要对参数a和类属性a进行区分publicBase(inta){this.aa;}}3、super指针这个指针和this指针差不多功能但是主要是为了区分和父类成员属性名、方法名相同的变量名、方法名。publicclassDerive{inta;// 在这里就是主要对参数a和类属性a进行区分publicDerive(inta){// 如果父类是有参构造需要往super()里面进行传参super()this.aa;}}4、final关键字final修饰变量xx不能被修改。final修饰成员变量成员变量必须被初始化。final修饰类类不能被继承。final修饰类方法方法不能被重写。三、多态多态就是同一种行为具有不同的表现形式。主要表现在猫狗都会叫但是叫的行为不一样一个“喵喵叫”一个“汪汪叫”。多态 动态绑定 继承 重写1、多态的构成条件必须在继承关系体系下。必须子类重写父类的方法。必须通过父类引用调用重写方法。[!NOTE] 注意子类方法的权限一定要大于等于父类方法的权限。被private修饰的成员方法不能被重写。被static修饰的成员方法不能被重写。被final修饰的成员方法不能被重写。publicclassAnimal{publicvoidbark(){System.out.println(Animal叫);}}-------------------------------------------publicclassCatextendsAnimal{publicvoidbark(){System.out.println(Cat叫);}}-------------------------------------------publicclassMain{publicstaticvoidmain(String[]args){Animalanimal1newCat();animal1.bark();}}2、重载、重写1重载方法名相同参数列表不同参数的个数、顺序、类型返回值不做要求2重写必须在继承体系下子类重新定义父类的非静态、非final方法返回值、方法名、参数列表均相同3、向上 转型、向下转型向上转型是将子类引用赋值给父类。向下转型是将父类引用赋值给子类父类引用必须是子类。向下转型关键字instanceofpublicclassMain{publicstaticvoidmain(String[]args){// 向上转型AnimalanimalnewCat();// 向下转型if(animalinstanceofCat){Catcat(Cat)animal;}}}