包的概述-与static关键字-接口-多态介绍

发布于:2022-12-21 ⋅ 阅读:(346) ⋅ 点赞:(0)

一.包的概述

1.包

本质上就是文件夹

2.创建包

多级包之间使用 " . " 进行分割 多级包的定义规范:公司的网站地址翻转(去掉www) 比如:百度的网站址为www.baidu.com 后期我们所定义的包的结构就是:com.baidu.其他的包名

3.包的命名规则

   字母都是小写

二. static修饰的特点

1.被类的所有对象共享,是我们判断是否使用静态关键字的条件

2.随着类的加载而加载,优先于对象存在,对象需要类被加载后,才能创建

3.可以通过类名调用 也可以通过对象名调用

注意:     1. 被static修饰的成员, 会被该类的所有对象所[共享]
                2. 被static修饰的成员, 会随着类的加载而加载, 优先于对象存在
                3. 多了一种调用方式, 可以通过类名.进行调用

 三.接口

1.接口介绍

接口用关键字interface修饰

public interface 接口名 {} 

类实现接口用implements表示

public class 类名 implements 接口名 {}

1.接口不能实例化(我们可以创建接口的实现类对象使用)

2.接口的子类(要么重写接口中的所有抽象方法,要么子类也是抽象类)

2.接口的成员特点

  • 成员变量

    只能是常量 ​ 默认修饰符:public static final

  • 构造方法

  • 没有,因为接口主要是扩展功能的,而没有具体存在

  • 成员方法

    只能是抽象方法

    默认修饰符:public abstract

3.类和接口的关系

  • 类与类的关系

    继承关系,只能单继承,但是可以多层继承

  • 类与接口的关系

    实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口

  • 接口与接口的关系

    继承关系,可以单继承,也可以多继承

四.多态

1.多态的概述

  • 什么是多态

    同一个对象,在不同时刻表现出来的不同形态

  • 多态的前提

    • 要有继承或实现关系

    • 要有方法的重写

    • 要有父类引用指向子类对象

代码示例:

class Animal {
    public void eat(){
        System.out.println("动物吃饭");
    }
}

class Cat extends Animal {
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
}

public class Test1Polymorphic {
    /*
        多态的前提:

            1. 要有(继承 \ 实现)关系
            2. 要有方法重写
            3. 要有父类引用, 指向子类对象
     */
    public static void main(String[] args) {
        // 当前事物, 是一只猫
        Cat c = new Cat();
        // 当前事物, 是一只动物
        Animal a = new Cat();
        a.eat();

    }
}

 2.多态中的成员访问特点

成员访问特点

  • 成员变量

    编译看父类,运行看父类

  • 成员方法

    编译看父类,运行看子类

  • 代码示例:

    class Fu {
        int num = 10;
    
        public void method(){
            System.out.println("Fu.. method");
        }
    }
    
    class Zi extends Fu {
        int num = 20;
    
        public void method(){
            System.out.println("Zi.. method");
        }
    }
    
    public class Test2Polymorpic {
        /*
             多态的成员访问特点:
    
                    成员变量: 编译看左边 (父类), 运行看左边 (父类)
    
                    成员方法: 编译看左边 (父类), 运行看右边 (子类)
         */
        public static void main(String[] args) {
            Fu f = new Zi();
            System.out.println(f.num);
            f.method();
        }
    }

    成员变量运行父类的,成员方法是子类的

3.多态的好处和弊端

  • 好处

    提高程序的扩展性。定义方法时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作

  • 弊端

    不能使用子类的特有成员

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到