day04

1.多态变量

子类的对象可以被当做父类的对象来使用
子类的对象可以放在存放父类对象的容器里

java的对象变量是多态的,他们能保存不止一种类型的对象。他们可以保存的是声明类型的对象,或声明类型的子类的对象。当把子类的对象赋给父类的变量的时候,就发生了向上造型。

2.向上造型

子类的对象可以赋值给父类的变量(让两个对象的管理者去共同管理一个对象)。
但是父类的对象不能赋值给子类的变量。

3.多态

当通过对象变量调用函数的时候,调用哪个函数这件事叫做绑定

子类和父类中存在名称和参数完全相同的函数,这一对函数构成覆盖关系

通过父类的变量调用存在覆盖关系的函数时,会调用变量当时所管理的对象所属的类的函数

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

4.Object类

Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法。

5.取消代码复制

代码复制是设计不良的一种表现。

6.封装

类和类之间的关系叫做耦合
耦合越低越好,保持距离是形成良好代码的关键

实现java封装的步骤:
(1)修改属性的可见性来限制对属性的访问,一般设为 private。
(2)为每个属性创建一对赋值(setter)方法和取值(getter)方法,一般设为 public,用于属性的读写。
(3)在赋值和取值方法中,加入属性控制语句(对属性值的合法性进行判 断)。

下面以一个员工类的封装为例介绍封装过程。一个员工的主要属性有姓名、年龄、联系电话和家庭住址。假设员工类为 Employee,示例如下:

public class Employee {
    private String name; // 姓名
    private int age; // 年龄
    private String phone; // 联系电话
    private String address; // 家庭住址
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        // 对年龄进行限制
        if (age < 18 || age > 40) {
            System.out.println("年龄必须在18到40之间!");
            this.age = 20; // 默认年龄
        } else {
            this.age = age;
        }
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
}

7.接口

接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

接口的声明格式语法如下:

[可见度] interface 接口名称 [extends 其他的接口名] {
        // 声明变量
        // 抽象方法
}

8.抽象类

概述:在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。

由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。

在 Java 中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。

在 Java 语言中使用 abstract class 来定义抽象类

抽象函数:表达概念而无法实现具体代码的函数

9.内部类

定义在别的类内部,函数内部的类
内部类能够直接访问外部的全部资源(包括任何的私有成员)
外部是函数时,只能访问那个函数里final的变量

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值