美文网首页
Java面向对象、抽象方法和接口

Java面向对象、抽象方法和接口

作者: 胡伟红 | 来源:发表于2020-01-14 17:12 被阅读0次

一、抽象类(Abstract)

抽象类不可以创建对象,其他和普通类一致,可以有成员,静态方法和构造方法(提供子类调用)
抽象方法:用abstract定义了方法签名,但没有语句
含有抽象方法的类称为抽象类,抽象类中不一定有抽象方法,但是抽象方法的类必须是抽象类。
抽象方法必须被子类实现,如果子类不识闲父类的抽象方法,那么子类也必须是抽象类

抽象类的作用:

被继承
强迫子类实现抽象方法
抽方法相当于定义规范
面向抽象编程的本质

二、接口(Interface)

一种数据类型,引用数据类型
使用interface声明一个接口,接口只有抽象方法实现interface使用implement一个class可以实现多个interface
不能定义实例字段,不能定义普通方法,可以定default方法
一个接口可以extends另一个接口,相当于扩展接口方法接口层次代表抽象程度
接口也是数据类型,适用于向上转型和向下转型
如果一个类中所有的方法均为abstract方法,那么这个类就可以声明为接口

public abstract class MyClass {
    public abstract void print();
    public abstract String fun();
    public abstract void show();
 }

可以改为接口

public interface MyInterface {    
   void print();
   String fun();
   void show();
 }

接口不是类,不可以构造方法
接口可以包含:抽象方法(可以省略public abstract 默认是public)、非抽象方法(JDK1.8新特性,必须使用default关键字)、属性常量(public static final),public static final可与省略不写

public interface MyInterface {
     String name="张三";
     public static final String name2="张三";//等同上一句
     void show();
     String fun();
     int [] method();
     /**JDK1.8新特性 ,必须使用default关键字*/
     public default void method2(){
         
     }
     //接口中不允许定义构造方法
    /* public MyInterface(){
         
     }*/
}

三、接口与类的关系

1.类去实现接口中的抽象方法,实现关系implements,实现接口中所有抽象方法
public class InterfaceImpl implements MyInterface{

    @Override
    public void show() {
        // TODO Auto-generated method stub
        
    }

    @Override
    public String fun() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int[] method() {
        // TODO Auto-generated method stub
        return null;
    }

}
2.一个类存在继承关系,有存在实现关系

extends在前,implement在后

1 public class Stuent extends Person  implements Play{
}
3.如果父类与接口中有完全相同的方法

父类有线于接口,子类实现的是父类中的方法

4.如果父类中与接口中有同名方法(只是名字相同,参数不同)

父类与接口中的方法,在子类/实现类中构成方法的重载

四、接口的特征:传递性和继承性(多继承)

public interface InterfaceA {
    public void show();
}
interface InterfaceB {
    
}
interface InterfaceC extends InterfaceB,InterfaceA{
    
}
class Impl implements InterfaceC{

    @Override
    public void show() {
        // TODO Auto-generated method stub
        
    }
    
}

五、使用接口的意义

具体实现意义看一下代码

public interface Fly {
    public void flying();//飞行的能力
}
class AirPlane implements Fly{

    @Override
    public void flying() {
        System.out.println("飞机在祖国的蓝天上自由飞翔...........");
    }
    
}
class Bird implements Fly{
    @Override
    public void flying() {
        System.out.println("小鸟唱着动听的歌,在天空中飞................");
    }
}
class FootBall implements Fly{
    @Override
    public void flying() {
        System.out.println("球被踢了一脚,划了个美丽的弧线飞到了对方的球门里..........");
    }
}
public class Test {
    public static void main(String[] args) {
        //接口类型(引用数据类型)指向实现类的对象
        Fly airPlane=new AirPlane();
        Fly bird =new Bird();
        Fly football=new FootBall();
        //调用相同的方法
        airPlane.flying();
        bird.flying();
        football.flying();
        //运行结果,不相同
        
    }
}

相关文章

  • 第13讲 | 谈谈接口和抽象类有什么区别?

    典型回答 接口和抽象类是 Java 面向对象设计的两个基础机制。接口是对行为的抽象,它是抽象方法的集合,利用接口可...

  • java 常见面试题总结

    java 基础 问题回答会附上链接 面向对象 面向对象的基本特征 接口和抽象类的区别 object的几个方法htt...

  • Java面向对象、抽象方法和接口

    一、抽象类(Abstract) 抽象类不可以创建对象,其他和普通类一致,可以有成员,静态方法和构造方法(提供子类调...

  • Java面向对象:抽象和接口

    抽象 仅声明方法而不实现当中的逻辑,叫抽象方法,如果一个类中包括了抽象方法,则该类称为抽象类。抽象类不能用来生成对...

  • java抽象类和接口小记

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

  • Java 中接口和抽象类的 7 大区别!

    Java 是一门面向对象的编程语言,面向对象的编程语言有四大特征:抽象、封装、继承和多态。 而本文介绍的接口和抽象...

  • 2018-08-22 Java基础知识

    面向对象的四大基本特征: Java类是只能单继承,但可以多重继承。 Java接口是可以多继承的 接口全是抽象方法 ...

  • 008.java 对象和类

    Java 对象和类 Java作为一种面向对象语言。支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法...

  • 04.Java 对象和类

    Java 对象和类 Java作为一种面向对象语言。支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法...

  • Kotlin入门学习(二)

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

网友评论

      本文标题:Java面向对象、抽象方法和接口

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