【面向对象】接口:接口的基本定义、接口中成员变量的特点、形式参数问题、方法返回值问题、有关包的问题、类及其组成可以用的修饰符

这篇博客详细探讨了Java中的接口,包括接口的基本定义、接口中成员变量的特点、形式参数与方法返回值的问题、包的概念及权限修饰符的影响,以及类的修饰符使用。接口不能直接实例化,需要通过类实现,并且可以使用多态进行操作。文章通过实例展示了类、抽象类和接口作为方法参数和返回值的情况,同时讨论了包的组织结构和访问权限的细节。
摘要由CSDN通过智能技术生成

一.接口

1.接口的基本定义:

(1)、语句定义格式:接口使用关键:interface表示
interface 接口名{}
(2)、接口是如何实现的呢?
接口不能直接实例化
那么接口如何去表示呢?
这里需要另外一个关键字供其他类实现该接口:implements
使用多态的形式进行实现,由具体的子类进行实例化,其实这是多态的一种,叫做接口多态。
(3)、也可以用一个抽象类去实现,但用抽象类去实现时可以选择性的去实现接口中的方法。

    现在我们将猫狗案例加入钻火圈的功能改写。

    到目前为止,我们学过了三种多态的表现实现:
        1、具体的类中的多态 (最后才是具体类的多态)
        2、抽象类中的多态   (其次是抽象多态)
        3、接口中的多态    (今后大数据开发最常见的是接口多态)

(4).猫狗增加钻火圈案例

   public class InterfaceDemo1 {
   
    public static void main(String[] args) {
   
        Dog f=new SkillDog("小白",2);
        f.eat();
        f.sleep();
        SkillDog m=(SkillDog)f;
        m.chuanhuoquan();
        Cat f1=new SkillCat("小黑",3);
        f1.eat();
        f1.sleep();
        ((SkillCat) f1).chuanhuoquan();

    }
}
abstract class Animal{
   
    public String name;
    public int age;

    public String getName() {
   
        return name;
    }

    public void setName(String name) {
   
        this.name = name;
    }

    public int getAge() {
   
        return age;
    }

    public void setAge(int age) {
   
        this.age = age;
    }
    public Animal(){
   }

    public Animal(String name, int age) {
   
        this.name = name;
        this.age = age;
    }
    public abstract void eat();
    public  abstract void sleep();
}
class Dog extends Animal{
   
    public Dog(String name, int age) {
   
        super(name, age);
    }

    @Override
    public void eat() {
   
        System.out.println("狗吃肉");
    }

    @Override
    public void sleep() {
   
        System.out.println("狗趴着睡");
    }
}
class Cat extends Animal{
   
    public Cat(){
   }
    public Cat(String name, int age) {
   
        super(name, age);
    }

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

    @Override
    public void sleep() {
   

        System.out.println("猫蜷着睡");
    }
}
interface ChuanHuoQuan{
   
    public abstract void chuanhuoquan();

}
class SkillDog extends Dog implements ChuanHuoQuan{
   
    public SkillDog(String 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值