Java复习笔记——基础面向对象

概念清单

类 对象 方法 实例变量
多态 继承 封装
抽象
重载 重写

面向对象知识

1. 修饰符

访问修饰符


Java复习笔记——基础面向对象_第1张图片
  • default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符。
  • private : 在同一类内可见。
  • public : 对所有类可见。
  • protected : 对同一包内的类和所有子类可见。

非访问修饰符

  • static 静态变量 静态方法
  • final 类不能被继承,数据和函数不可被修改
  • abstract

2. 继承

class 父类 {
}
 
class 子类 extends 父类 {
}

接口

public interface B {
    public void show();
}
 
public class C implements B {
}
  • 构造函数
  • this
  • super
  • 抽象类

3. 多态

  • 重写 Override
    不可重写父类的private方法
    子类中调用父类的被重写方法时,要使用super关键字
  • 重载 Overload


    Java复习笔记——基础面向对象_第2张图片
public class Test {
    public static void main(String[] args) {
      show(new Cat());  // 以 Cat 对象调用 show 方法
      show(new Dog());  // 以 Dog 对象调用 show 方法
                
      Animal a = new Cat();  // 向上转型  
      a.eat();               // 调用的是 Cat 的 eat
      Cat c = (Cat)a;        // 向下转型  
      c.work();        // 调用的是 Cat 的 work
  }  
            
    public static void show(Animal a)  {
      a.eat();  
        // 类型判断
        if (a instanceof Cat)  {  // 猫做的事情 
            Cat c = (Cat)a;  
            c.work();  
        } else if (a instanceof Dog) { // 狗做的事情 
            Dog c = (Dog)a;  
            c.work();  
        }  
    }  
}
 
abstract class Animal {  
    abstract void eat();  
}  
  
class Cat extends Animal {  
    public void eat() {  
        System.out.println("吃鱼");  
    }  
    public void work() {  
        System.out.println("抓老鼠");  
    }  
}  
  
class Dog extends Animal {  
    public void eat() {  
        System.out.println("吃骨头");  
    }  
    public void work() {  
        System.out.println("看家");  
    }  
}

4. 封装

没啥说的

你可能感兴趣的:(Java复习笔记——基础面向对象)