1. 类和对象

对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
:类是一个模板,它描述一类对象的行为和状态。状态就是属性,行为通过方法体现。

例如:中汽车为类(class),而具体的每辆车为该汽车类的对象(object),对象包含了汽车的颜色、品牌、名称等。

1.1一个类可以包含以下类型变量:

  • 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
  • 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
  • 类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。

    1.2构造方法

    每个类都有构造方法。如果没有显式地为类定义构造方法,Java 编译器将会为该类提供一个默认构造方法。
    在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。
    下面是一个构造方法示例:

public  class  Puppy{
    public  Puppy(){
    }
 
    public  Puppy(String  name){
        //  这个构造器仅有一个参数:name
    }
}

1.3创建对象

对象是根据类创建的。在Java中,使用关键字 new 来创建一个新的对象。创建对象需要以下三步:

  • 声明:声明一个对象,包括对象名称和对象类型。
  • 实例化:使用关键字 new 来创建一个对象。
  • 初始化:使用 new 创建对象时,会调用构造方法初始化对象。
    下面是一个创建对象的例子:
public  class  Puppy{
   public  Puppy(String  name){
      //这个构造器仅有一个参数:name
      System.out.println("小狗的名字是  :  "  +  name  ); 
   }
   public  static  void  main(String[]  args){
      //  下面的语句将创建一个Puppy对象
      Puppy  myPuppy  =  new  Puppy(  "tommy"  );
   }
}

2. 继承

2.1 实例

继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

class  Animal  {
  void  eat()  {
    System.out.println("animal  :  eat");
  }
}
 
class  Dog  extends  Animal  {
  void  eat()  {
    System.out.println("dog  :  eat");
  }
  void  eatTest()  {
    this.eat();      //  this  调用自己的方法
    super.eat();    //  super  调用父类方法
  }
}
 
public  class  Test  {
  public  static  void  main(String[]  args)  {
    Animal  a  =  new  Animal();
    a.eat();
    Dog  d  =  new  Dog();

3. 多态

3.1. 概念

多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:

3.2 多态存在的三个必要条件

  • 继承
  • 重写
  • 父类引用指向子类对象:Parent p = new Child();
    当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。
    多态的好处:可以使程序有良好的扩展,并可以对所有类的对象进行通用处理。
    3.3.1. 向上转型
    子类引用的对象转换为父类类型称为向上转型。通俗地说就是是将子类对象转为父类对象。此处父类对象可以是接口。
    向上转型的好处
  • 减少重复代码,使代码变得简洁。
  • 提高系统扩展性。
    3.3.2. 向下转型
    与向上转型相对应的就是向下转型了。向下转型是把父类对象转为子类对象。
    向下转型注意事项
    向下转型的前提是父类对象指向的是子类对象(也就是说,在向下转型之前,它得先向上转型)
    向下转型只能转型为本类对象(如:猫是不能变成狗的)。

波波鱼
4 声望3 粉丝