Java 类与对象和类的继承

一、类与对象

1.1 类和对象的概念

面向对象程序设计将程序看做是一系列对象组成,而不是一系列动作组成。

  • 对象(实例):一个包含状态(数据)和行为(方法)的编程实体,是具体的。

  • 类:具有相同特征的事物的抽象描述,是抽象的。

  • 一个类里可以有多个对象

1.2 类的成员

  1. 属性(特征)
    该类事物的状态信息。对应类中的成员变量
   格式:访问修饰符 数据类型 属性名
   例: public String name;
   		private int score;
  1. 方法(函数)
    该类事物的行为。对应类中的成员方法。
 格式:public 方法名(参数类型 参数名, ,){
    } 
public void printSum ( int n, int m){
    int sum = n + m;
    System.out.println("sum = " + sum);
}

类的定义示例代码:

public class Student {
//成员变量
    private String name;
    private int age;
//成员方法
    public void study() {
        this.age = 18;
        this.name = "Peter";
        System.out.println("student name is " + s.name);
        System.out.println("student age is " + s.age);
    }

1.3 构造方法

  1. 两种构造方法:无参构造方法,有参构造方法;
  2. 在对象的生命周期中只调用一次;
  3. 名字与类名相同;
  4. 无返回值;
  5. 每个类都有一个默认的无参构造函数。
    在用户没有定义有参构造方法时,new对象时会自动调用无参构造方法;在定义有参构造方法后,默认的无参构造方法就会被替代;
  6. 构造方法的作用:
    (1)创建对象
    (2)同时给多个属性初始化
     格式:
      public 类名(){    方法体...  }
      public 类名(参数类型 参数名, ,){    方法体...  }
public class Fruit {
    private String name;
    private String taste;
    private String color;
//有参构造函数
    public Fruit(String name, String taste, String color) {
        this.name = name;
        this.taste = taste;
        this.color = color;
    }
//无参构造函数
    public Fruit() {
        this("Fruit", "Red", "Blue");
    }

1.4方法重载

方法重载: 同一个方法通过参数选择实现不同的功能

格式:
1.方法名相同;
2.参数列表不同:参数类型,个数,顺序不同;

注意:返回值类型和访问修饰符不同,其他相同时不算重载;
示例:Java 类与对象和类的继承_第1张图片
输出结果:
在这里插入图片描述

二、类的继承

2.1 什么是继承?

继承是类与类之间的一种关系
继承是对原来类(父类)功能的扩展,并创建新的类(子类)

2.2 继承的特点

  1. java中类是单继承,Java中一个类可以实现多个接口,接口是多继承;
  2. 一个子类只能有一个父类,但一个父类可以有多个子类;
  3. 支持多层次继承:
    子类的子类 -> 子类 -> 父类 -> 父类的父类;
  4. 子类会继承父类中所有的属性和方法,但私有属性不能直接使用;

2.3 继承的格式

public class 子类(派生类) extends  父类(基类,超类)
**其中extends是关键字**

下面是示例代码:
父类的定义 示例:

public class Fruit {
    private String name;
    private String taste;
    private String color;
    
    public void show(){
        System.out.println("Fruit Name: " + name);
        System.out.println("Fruit Taste: " + taste);
        System.out.println("Fruit Color: " + color);
    }

子类的定义 示例:

 public class apple extends Fruit {
 //apple是Fruit的子类,继承关键字是extends
    public  void print() {
        System.out.println(getName()+" is picked.");
    }
    public void show() {
        //保留父类原来的功能
        super.show();
        //新增功能
        System.out.println("Apple is fruit");
    }
}

2.4构造方法的调用

  1. 在子类中一定要调用父类中的一些构造函数;父类中的无参构造函数会被默认调用;
  2. 父类中的无参构造函数会被默认调用;
  3. 手动调用父类中的构造方法:super(参数);

2.5方法重写

当父类中的方法不能满足当前子类的需求时,需要重写方法;
重写格式:

  1. 在有继承关系的的两个类之间
  2. 方法名、返回值和类型参数列表(个数,顺序)相同;
  3. 子类重写方法的访问修饰符 >= 父类原来方法的访问修饰符
    public > protect > 缺省 > private

若要保留父类原有的功能:调用父类方法
用super表示当前类的父类对象

 public void show() {
        super.show();
        System.out.println("Apple is fruit");
    }

你可能感兴趣的:(java,开发语言)