zoukankan      html  css  js  c++  java
  • java 接口 以及 与抽象类的区别

    狭义概念 : Java 中的 interface

    广义概念 : 对外提供规则的都是 接口


    接口的定义方式 :  interface 接口名 { }

    用类实现接口:       class 类名 implements 接口名 {     }


    1. 接口不能被实例化;

    2. 接口中的方法都是抽象方法;,系统会 默认加上 public abstract

    3. 接口的实例化要按照多态的方式来实现 。‘

    4. 接口的子类 可以是 抽象类 ,但一般不这样写; 可以是具体类。类中要重写接口中的所有方法

    5.接口中的成员变量默认是 有 public static final 修饰的,不能更改,可以直接用 接口名. 变量名 调用


    类与类的关系: 

                继承,只能是单继承,可以多层继承

    类与接口的关系:  

             实现关系,可以单实现,也可以多实现

             可以在继承一个类的同时实现多个接口

    接口与接口的关系:

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


     

     1 class Test1_Animal {
     2     public static void main(String[] args) {
     3         Cat c = new Cat("加菲",8);
     4         c.eat();
     5         c.sleep();
     6 
     7         JumpCat jc = new JumpCat("跳高猫",3);
     8         jc.eat();
     9         jc.sleep();
    10         jc.jump();
    11     }
    12 }
    13 
    14 /*
    15 * A:案例演示
    16     * 动物类:姓名,年龄,吃饭,睡觉。
    17     * 猫和狗
    18     * 动物培训接口:跳高
    19 */
    20 
    21 abstract class Animal {
    22     private String name;                //姓名
    23     private int age;                    //年龄
    24 
    25     public Animal() {}                    //空参构造
    26 
    27     public Animal(String name,int age) {//有参构造
    28         this.name = name;
    29         this.age = age;
    30     }
    31 
    32     public void setName(String name) {    //设置姓名
    33         this.name = name;
    34     }
    35 
    36     public String getName() {            //获取姓名
    37         return name;
    38     }
    39 
    40     public void setAge(int age) {        //设置年龄
    41         this.age = age;
    42     }
    43 
    44     public int getAge() {                //获取年龄
    45         return age;
    46     }
    47 
    48     public abstract void eat();            //吃饭
    49 
    50     public abstract void sleep();        //睡觉
    51 }
    52 
    53 interface Jumping {                        //跳高的接口
    54     public void jump();
    55 }
    56 
    57 class Cat extends Animal {
    58     public Cat() {}                    //空参构造
    59     
    60     public Cat(String name,int age) {//有参构造
    61         super(name,age);
    62     }
    63     public void eat() {
    64         System.out.println("猫吃鱼");
    65     }
    66     public void sleep() {
    67         System.out.println("侧着睡");
    68     }
    69 }
    70 
    71 class JumpCat extends Cat implements Jumping {
    72     public JumpCat() {}                    //空参构造
    73 
    74     public JumpCat(String name,int age) {//有参构造
    75         super(name,age);
    76     }
    77 
    78     public void jump() {
    79         System.out.println("猫跳高");
    80     }
    81 }
  • 相关阅读:
    Java程序员极力推荐的springboot全家桶干货系列——收藏必会系列
    mysql 远程连接数据库的二种方法
    mysql取以当前时间为中心的任意时间段的时间戳
    使用sql语句,查询 mysql 的安装地址
    MyEclipse中点击Deploy MyEclipse J2EE Project to Server无响应解决方法
    使用DOS访问数据库详解
    mysql查询字段为null 返回0
    MySQL触发器Trigger实例篇
    JAVA汉字转拼音(取首字母大写)
    阿里云上传文件
  • 原文地址:https://www.cnblogs.com/gaoyang666/p/11102028.html
Copyright © 2011-2022 走看看