Java oop第05章_多态、接口

一、    为什么需要接口?
  Java中当一个类继承父类时,最多也只能继承一个父类,扩展性会受到一定的限制,为了弥补这一缺陷,Java又提供了一种新的引用数据类型分类,叫接口。
    一个类只能继承一个父类,但可以实现多个接口。
二、    接口的定义和使用:
  1.    定义接口:使用interface关键字。
  2.    实现接口:在一个抽象类或实现类中可以通过implements关键字。
三、    接口的注意事项:
  1.    接口是比抽象类更加抽象的“类”,接口中所有的方法都是抽象方法(不管是否使用abstract关键字修饰)。
  2.    一个类若继承了一个抽象类或实现接口,该类有两种选择,要么将自己声明为抽象类(可以不用实现父类或接口中的抽象方法),      要么实现父类中或接口中的所有抽象方法。
  3.    抽象类和接口都是不能被实例化的,即不能创建抽象类和接口的对象。
  4.    接口当中的成员变量(属性、字段)必须是静态常量,且要使用public修饰,同时要赋值。
      public static final String name = "";
  5.    接口不能再去实现(implements)其他接口,但可以使用extends关键字去继承接口,且可以继承多个接口
  6.    抽象类中可以写构造方法,但接口中不能编写构造方法
四、    使用接口的好处:
  1、    可以达到多“继承”的效果,针对Java是单继承的缺陷进行补充,让Java代码的扩展性更好。
  2、    使用接口后可以达到设计(在接口中定义属性和方法)和实现(实现接口中的方法)分离,更利于团队协同开发;      设计可能是一个公司或组织在完成,而实现是其他更多的公司或组织来完成。
  3、    JDBC、Java web都是先在接口中定义属性和方法,各个数据库厂商实现jdbc的接口、抽象类中定义的抽象方法;      Java web的实现接口(如:tomcat)实现Java web接口、抽象类中定义的抽象方法。    
  4、    更自然的实现多态。
  5、    调用者可以不用关心方法实现的细节,只需要知道调用方法时注意的问题即可      (a、是否需要传递参数,若需要是什么类型的参数;b、方法执行完是否有返回值,若有是什么类型的值;c、观察该方法是在哪个接口、抽象类、实现类定义的)
五、    什么是多态?
  一个父类型(接口、抽象类、实现类)的引用可以指向多个子类的对象(实例、引用),称为多态。



 
/**
 * 定义了一个接口:接口会提供一些属性和方法
 *
 */
public interface Usb{
    public static final String name = "";

    /**
     * 接口中的方法都是抽象方法,加不加abstract关键字都可以
     * 使用的方法
     */
    public void use();

    /**
     * 显示信息的方法
     * @param name:显示的名称
     */
    public void view(String name);

    /**
     * 打印输出的方法。
     */
    public void print();

}
 
/**
 * 定义一个类:去实现Usb接口
 *    一个类若继承了一个抽象类或实现接口,该类有两种选择,要么将自己声明为抽象类(可以不用实现父类或接口中的抽象方法),
 *    要么实现父类中或接口中的所有抽象方法。
 */
public class UsbMouse implements Usb {

    @Override
    public void use() {
        System.out.println("USB Mouse的use()方法中输出的内容");
    }

    @Override
    public void view(String name) {
        System.out.println("USB Mouse的view()方法中输出的内容");
    }

    @Override
    public void print() {
        System.out.println("USB Mouse的print()方法中输出的内容");
    }

}



/**
 * 定义一个类:去实现Usb接口
 */
public class UsbFan implements Usb {

    @Override
    public void use() {
        System.out.println("USB Fan的use()方法中输出的内容");

    }

    @Override
    public void view(String name) {
        System.out.println("USB Fan的view()方法中输出的内容");
    }

    @Override
    public void print() {
        System.out.println("USB Fan的print()方法中输出的内容");

    }

}
 
public class UsbTest {
    public static void main(String[] args) {
        //一个父类型的引用可以指向多个子类的对象(实例、引用),称为多态。
        Usb usb = new UsbMouse();
        Usb usbfan = new UsbFan();
        usb.use();
        usbfan.use();
    }
}



原文地址:https://www.cnblogs.com/zhangzimuzjq/p/11703457.html

时间: 2024-11-08 23:39:59

Java oop第05章_多态、接口的相关文章

java OOP第03章_继承、抽象类和抽象方法

一. 为什么需要继承: 若多个类中都需要一些属性和方法,那么就可以将属性和方法抽取到一个父类中,需要的子类可以通过extends关键字去继承这个父类后拥有相应的属性和方法. 类.数组.方法----引用数据类型 二. 继承的流程: 1. 编写父类:Animal 2. 编写子类:Dog.Cat.Pig 3. 在子类中通过extends关键字去继承父类: 三. 继承的注意事项: 1. 父类中的属性和方法只有使用protected.public修饰的才能被子类继承. 2. 当编写一个类时,若使用了ext

“全栈2019”Java第五十七章:多态与构造方法详解

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第五十七章:多态与构造方法详解 下一章 "全栈2019"Java第五十八章:多态中方法返回类型可以是子类类型 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复"Java

2019-05-17 Java学习日记之面向对象_多态&抽象类&接口

多态 多态的概述: A:多态(polymorphic) 事物存在的多种形态 B:多态前提 a:要有继承关系 b:要有方法重写c:要有父类引用指向子类对象 多态中的成员访问特点之成员变量: 成员变量:编译看左边(父类),运行看左边(父类)多态中的成员访问特点之成员方法:成员方法:编译看左边(父类),运行看右边(子类)多态中的成员访问特点之静态成员方法:静态方法:编译看左边(父类),运行看左边(父类)(静态和类相关,算不上重写,所以访问还是左边的)只有非静态的成员方法,编译看左边,运行看右边 多态的

java基础 第十一章(多态、抽象类、接口、包装类、String)

一.多态 1.多态存在于继承和接口中. 2.不确定行为放在父类中. 3.子类必须重写父类中的不确定行为. 二.抽象类 1.关键字 abstract. 例:public abstract class Shap{ public abstract void View(); } 2.抽象类中放不确定的行为方法. 3.不能构建实例,因为有抽象方法. 4.抽象类中有构造函数,方法和属性. 子类默认调用父类的无参构造函数. 如果父类中是有参构造函数,子类也要有构造函数来调用,关键字  super. 三.接口

java oop第09章_JDBC02(CRUD操作)

第09章_JDBC02(CRUD操作) CRUD(CREATE . RETIVE . UPDATE . DELETE)增删改查. DAO中会提供一些CRUD操作方法,调用者可以通过调用这些方法完成相应操作,本章讨论DAO中需要提供一些什么方法? 一.     Dao常用的方法 1.     增加的方法: 通常需要传入实体对象携带所有属性值,作为插入的数据:返回的是受影响的行数(int类型). 如:insertDept(Dept dept) 2.     删除的方法:通常需要传入id(指的是数据表

Java oop第08章_JDBC01(入门)

一. JDBC的概念: JDBC(Java Database Connectivity)java数据库链接,是SUN公司为了方便我们Java程序员使用Java程序操作各种数据库管理系统制定的一套标准(规范), 其中定义一些接口.抽象类和抽象方法,再由各个数据库管理系统厂商实现这些抽象方法,我们程序员只要学习一套JDBC规范就可以操作各种数据库管理系统. JDBC也是一个注册商标. 二. JDBC的入门案例/JDBC的开发流程: 1. 创建一个Java project/web project:JD

java oop第12章_IO、序列化和反序列化

引言:数据通常通过文件系统保存在外存中,有时需要将他们读取到程序中进行一些操作,Java针对文件系统的操作提供了一套规范,即IO,针对计算机内存而言,输入的称为输入流,输出的称为输出流. 一.      IO的分类:     从传递方向划分:输入流(InputXxx).输出流(OutPutXxx).     从数据格式划分:字节流(XxxStream).字符流(XxxReader.XxxWriter).     从数据中转的节点划分:节点流.过滤流 图源:http://test.processo

《Effective Java》第4章 类和接口

第13条:使类和成员的可访问性最小化 第一规则很简单:尽可能地使每个类或者成员不被外界访问.换句话说.应该使用与你正在编写的软件的对应功能相一致的.尽可能最小的访问级别. 对于顶层的(非嵌套的)类和接口,只有两种可能的访问级别:包级私有的(package-private)和公有的(public).如果你用public修饰符声明了顶层类或者接口,那它就是公有.否则,它将是包级私有的.如果类或者接口能够被做成包级私有的,它就应该被做成包级私有的.通过把类或者接口做成包级私有,它实际上成了这个包的实现

我的学习之路_第二章_接口/多态

接口 (1)当抽象类中的方法都是抽象的时候,java就提供了一种新的表现形式:接口.接口是功能的集合 接口不能创建对象 (2)格式: 父接口: public interface Inter { } 子类: public class InterImpl implements Inter { } (3)接口的特点: A:不需要被abstract修饰. B:类实现接口,可以单实现,还可以多实现. C:接口可以继承接口,可以单继承,也可以多继承. D:接口与父类的功能可以重复,均代表要具备某种功能. (