当前位置: 首页 > news >正文

java抽象类和抽象方法

首先应该明确一点的是,抽象方法必须定义在抽象类中。

先看一个抽象类的定义:

public abstract class Animal {

    public abstract void eat();
    
    public abstract void sleep();
    
    public void Smile()
    {
        System.out.println("每个动物都会微笑,因为最美!");
    }

}

抽象类作为一个父类,可以定义抽象方法,也可以定义一般方法。

我们在来定义一个子类:

public class Man extends Animal{

    public void eat()
    {
        System.out.println("一天天就知道个吃");
    }
    
    public void sleep() 
    {
        System.out.println("就知道个睡");
    }
    
    public static void main(String[] args)
    {
        Man obj=new Man();
        obj.eat();
        obj.sleep();
        obj.Smile();
    }
}

子类Man继承了抽象类,那么就必须将其抽象方法实现,是必须,必须,不然就会报错。

 

 

抽象类和接口的区别:

子类继承了抽象类,抽象方法必须实现,然而其他其他方法可以不实现,抽象方法中也可以定义不是抽象的方法

子类实现接口,接口中默认的方法都为抽象方法,也就不能实现,一个子类可以实现多个接口,而只能继承一个抽象类,其实接口是抽象类中更为具体的一种类而言。

public interface TrafficTool {

    void Car();
    
    void Airport();
    
    void Train();

}

public class LandTool implements TrafficTool {

    public void Car()
    {
        System.out.println("走,咋们炸汽车去");
    }
    
    public void Airport()
    {
        System.out.println("走,咋们炸飞机去");
    }
    
    public void Train()
    {
        System.out.println("抢火车去不去,愣货");
    }
    
    public static void main(String[] args)
    {
        LandTool obj=new LandTool();
        obj.Car();
        obj.Airport();
        obj.Train();
    }
}

 补充接口,接口不允许任何方法定义,接口和实现完美分离。

 

转载于:https://www.cnblogs.com/Optimism/p/10484340.html

相关文章:

  • sqlmap学习
  • hdu 1907 (尼姆博弈)
  • 判断闰年
  • 历届试题 网络寻路
  • MATLAB Simulink中解算器的定步长和各模块采样时间之间的关系
  • F和Q事务
  • MOS管在开关电路中的使用
  • java学习笔记3
  • 男神鹏:python 机器学习三剑客 之 Matplotlib
  • 牛客小白月赛12
  • Django 模板继承extend 标签include block
  • hihocoder contest95 1、3、4题目分析 2赛后补题
  • Bsr.Form框架问题汇总
  • React中super(props)和super()以及不写super()的区别
  • Eclipse安装Web插件
  • 深入了解以太坊
  • 2017届校招提前批面试回顾
  • Android单元测试 - 几个重要问题
  • crontab执行失败的多种原因
  • CSS相对定位
  • ES6系统学习----从Apollo Client看解构赋值
  • Iterator 和 for...of 循环
  • Java应用性能调优
  • java正则表式的使用
  • js
  • spring boot 整合mybatis 无法输出sql的问题
  • sublime配置文件
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 聊一聊前端的监控
  • 如何实现 font-size 的响应式
  • 使用docker-compose进行多节点部署
  • 温故知新之javascript面向对象
  • 我是如何设计 Upload 上传组件的
  • No resource identifier found for attribute,RxJava之zip操作符
  • 阿里云ACE认证之理解CDN技术
  • ​Java并发新构件之Exchanger
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • "无招胜有招"nbsp;史上最全的互…
  • #前后端分离# 头条发布系统
  • (4)STL算法之比较
  • (floyd+补集) poj 3275
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (新)网络工程师考点串讲与真题详解
  • (一)认识微服务
  • (转)ObjectiveC 深浅拷贝学习
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET 回调、接口回调、 委托
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .net反编译工具
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • /proc/vmstat 详解