面向对象核心

一. 类与对象:封装、构造方法、this
二. 成员变量&局部变量区别
三. 权限修饰符:private/default/protected/public
四. 继承:extends、super、重写
五. 多态:向上转型、动态绑定
六. 抽象类abstract、接口interface
七. 内部类、static、final关键字
一.已经在前面的文章讲到过
二·
内存:成员是堆,局部是栈。位置:成员在内里、方法外,局部在方法 代码块 形参内。 生命周期:成员有默认0、null、false,局部无默认,必须赋值使用
生命周期:成员对象存在就存在 局部仅final 作用:成员整个类都可以用 局部仅当前代码块可用
Java 4种权限修饰符(由大→小)

三. public 公共全项目任意访问 2. protected 受保护同包 + 不同包子类 3. 默认(包权限,无关键字)仅同包内访问 4. private 私有仅本类内部访问
public > protected > 默认 > private
四.继承

  1. 关键字:extends,单继承 2. 子类继承父类非private成员 3. super:指代父类对象,调用父类属性/方法/构造 4. 构造方法:子类默认先调用父类无参构造
  2. 重写:子类改写父类非私有方法,权限≥父类

代码示例
class Animal {
String type = "动物";
public void eat(){
System.out.println("动物进食");
}
public Animal(){}
}
class Dog extends Animal {
String type = "狗狗";
@Override
public void eat(){
super.eat(); // 调用父类原方法
System.out.println("狗狗吃骨头");
}

public void show(){
System.out.println(super.type); // 父类成员
System.out.println(this.type); // 子类成员
}
}

public class TestExtends {
public static void main(String[] args) {
Dog d = new Dog();
d.eat();
d.show();
}
}
关键
• 私有属性/方法不能继承

• 构造不能被继承、只能通过super调用

• 成员变量就近原则,super取父类
五.多态

  1. 前提:继承 + 重写 + 父类引用指向子类对象
  2. 格式:父类 引用 = new 子类();
  3. 口诀:编译看左边,运行看右边
    访问规则
    • 成员变量:编译运行都看父类
    • 成员方法:编译看父类,运行看子类重写
    • 静态方法:无多态,全看引用类型
    代码示例
    class Animal{
    public void cry(){
    System.out.println("动物叫");
    }
    }
    class Cat extends Animal{
    @Override
    public void cry(){
    System.out.println("喵喵喵");
    }
    }
    class Dog extends Animal{
    @Override
    public void cry(){
    System.out.println("汪汪汪");
    }
    }

public class Test{
public static void main(String[] args) {
// 多态写法
Animal a1 = new Cat();
Animal a2 = new Dog();
a1.cry(); // 喵喵喵
a2.cry(); // 汪汪汪
}
}
转型
• 向上转型:自动 子类→父类
• 向下转型:强制 父类→子类,搭配instanceof防报错
六七见下一篇博客

posted @ 2026-05-19 18:40  人青是个小卷毛  阅读(5)  评论(0)    收藏  举报