美文网首页
Java_类和对象(多态 接口)

Java_类和对象(多态 接口)

作者: Miss_差不多 | 来源:发表于2017-09-08 09:10 被阅读15次

接口

  • 多个无关的类可以实现同一个的接口.
  • 一个类可以实现多个无关的接口.但只能继承一个抽象类.
  • 接口中的属性只能是public static final的.
  • 方法只能是抽象的.
  • 接口中继承的关键字是 implements.
  • 抽象类可以有构造方法.

接口和类的相似点

  • 一个接口可以有多个方法.
  • 接口文件保存在.java结尾文件中.,文件名使用接口名.
  • 接口的字节码文件保存在.class结尾的文件中.
  • 接口相应的字节码文件必须在与包名称相匹配的目录结构中.

接口与类的区别

  • 接口不能用于实例化对象.
  • 接口没有构造方法.
  • 接口中的所有方法必须是抽象方法.
  • 接口不能包含成员变量,出了static和final变量.
  • 接口不是被类继承了,而是被类实现了.
  • 接口支持多继承.

抽象类和接口的区别

  • 抽象类可以定义非抽象方法,接口不行(必须是抽象方法).
  • 抽象类有构造方法,接口没有.
  • 一个类只能继承一个抽象类,而一个类可以实现多个接口.(接口可以多继承).

接口的案例

public interface Carepet {
    public  void play();
    public  void eat();
    

}
interface playgrame{
    public void plays();
}

class work implements Carepet,playgrame
{
    public static void main(String[] args) {
        Carepet carepet = new work();
        work w = (work)carepet;
        w.plays();
        w.play();
        w.eat();
        
    }
@Override
    public void play() {
        System.out.println("在工地上完");
        
    }
@Override
    public void eat() {
        System.out.println("吃剩饭");
    }
@Override
    public void plays() {
        System.out.println("在网吧玩游戏");
        
    }
}
class farmer implements Carepet{

    @Override
    public void play() {
        System.out.println("在农场玩");
        
    }
@Override
    public void eat() {
        System.out.println("吃饭");
        
    }
}

class leader implements Carepet{

    @Override
    public void play() {
        System.out.println("在操场玩");
        
    }

    @Override
    public void eat() {
        System.out.println("吃专用粮");
        
    }
    
}

多态

  • 父类引用指向子类对象. [Animal a = new Cat()]
  • 必须有继承.
  • 重写.
  • 强制类型转换 Animal a = new Cat() Cat c = (Cat)a;
    *instanceof 判断真实类型

多态案例

public class Test1 {
    public static void main(String[] args) {
        //Cat cat = new Cat();
        Animal a = new Cat();
        a.eat();
        //instanceof  当父类中没有子类的方法的时候需要强转     判断a的真实类型是不是cat.
        if (a instanceof Cat) {
            System.out.println("猫类");
            Cat c = (Cat) a;//强制类型转换
            c.sleep();
            }
    }
}
class Animal{
    void eat(){
        System.out.println("动物吃");
        }
}

class Dog extends Animal{
    @Override
    void eat() {
        System.out.println("狗狗爱吃骨头");;
    }
}

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

相关文章

  • Java_类和对象(多态 接口)

    接口 多个无关的类可以实现同一个的接口. 一个类可以实现多个无关的接口.但只能继承一个抽象类. 接口中的属性只能是...

  • Java多态的具体体现

    面向对象编程有四;个特征:抽象,封装,继承,多态。 多态有四种体现形式: 1. 接口和接口的继承。 2. 类和类的...

  • Java_类和对象(继承 多态 重写)

    继承 1.java中使用extends(单一继承,即一个子类只能拥有一个父类)关键字实现类的继承机制.implem...

  • java抽象类和接口小记

    Java抽象类和接口小记 Java抽象类和接口实现了java的多态.多态是面向对象程序语言的核心,在项目开发过程中...

  • java多态

    面向对象的三大特点是封装、继承、多态,其中extends类和implements接口是多态的基础,所谓多态,是对一...

  • Kotlin入门学习(二)

    新的篇章 面向对象 面向对象-封装 面向对象-继承 面向对象-抽象类和多态 接口 委托和代理 by关键字 委托...

  • 面向对象程序设计(OOP)

    多态: 多态的本质: 父类引用指向子类的对象 或者 接口类型的引用可以只想实现接口的类的实例 多态是一种运行时期的...

  • python多态

    多态定义 在面向对象编程中, 多个类的相同接口差异化实现. 多态作用 通过在多个类中实现通用接口, 使得该类具有接...

  • JavaSE第11篇:面向对象之接口、多态

    核心概述:本篇我们将学习面向对象中的接口和多态,接口类似我们之前学习继承时的父类或抽象类,接口与众不同的时,接口中...

  • 多态

    多态 对象的多态性。多态在程序中的体现:父类的引用或者接口的引用指向了子类对象多态的好处:提高了代码的扩展性多态的...

网友评论

      本文标题:Java_类和对象(多态 接口)

      本文链接:https://www.haomeiwen.com/subject/phypjxtx.html