抽象类

用abstract关键字来修饰一个类时,这个类就叫抽象类,用abstract关键字来修饰一个方式时,这个方法就是抽象方法。当一个类继承的父类是抽象类的话,需要我们把抽象类中的所有抽象方法全部实现。那为什么要用抽象类呢?当父类的一些方法不能确定时,可以先在抽象类里定义抽象方法。

注意事项

Ⅰ.抽象类不能被实例化

Ⅱ.抽象类不一定要包含abstract方法。

Ⅲ.一旦类包含了abstract方法,则这个类必须声明为abstract

Ⅳ.抽象类不能有主体

实例

 package com.beekc.www;

 public class Beekc {
public static void main(String[] args) {
Animal an = new Dog();
an.cry();
an = new Cat();
an.cry();
}
} //抽象类
abstract class Animal
{
private int age;
private String name;
//抽象方法
abstract public void cry(); } class Cat extends Animal
{
//继承了Animal,一点要实现cry方法
public void cry()
{
System.out.println("猫猫,喵喵叫~");
}
} class Dog extends Animal
{
//继承了Animal,一点要实现cry方法
public void cry()
{
System.out.println("狗狗,汪汪叫~");
}
}

运行结果

接口

接口就是给出一些没有内容的方法,封装到一起,到某个类要使用的时候,在根据具体情况把这些方法写出来。接口是更加抽象的抽象的类,抽象类里的方法可以有方法体,接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚低偶合的设计思想。

注意事项

Ⅰ.接口不能被实例化

Ⅱ.接口中所有的方法都不能有主体

Ⅲ.一个类可以实现多个接口

Ⅳ.接口中可以有变量,但变量不能用private和protected修饰

Ⅴ.一个接口不能继承其他的类,但是可以继承别的接口

实例

 package com.beekc.www;

 //定义一个叫Usb的接口,用interface关键字
interface Usb
{
int a= 1;
//定义两个方法
public void start();
public void stop();
} //相机类继承一个接口,用implements关键字
class Camera implements Usb
{
//继承了接口,一定要Usb接口里的方法
public void start()
{
System.out.println("我是相机,开始工作了!");
}
public void stop()
{
System.out.println("我是相机,停止工作了!");
}
} //手机类继承一个接口,用implements关键字
class Phone implements Usb
{
//继承了接口,一定要Usb接口里的方法
public void start()
{
System.out.println("我是手机,开始工作了!");
} public void stop()
{
System.out.println("我是手机,停止工作了!");
}
} //计算机
class Computer
{
//开始使用接口
public void useUsb(Usb usb)
{
usb.start();
usb.stop();
}
} public class Beekc {
public static void main(String[] args) {
System.out.println(Usb.a);
Computer computer = new Computer();
Camera camera = new Camera();
Phone phone = new Phone();
computer.useUsb(camera);
computer.useUsb(phone);
}
}

运行结果

JAVA面向对象 - 抽象类、接口的更多相关文章

  1. Java面向对象:接口

    Java面向对象之接口 什么是接口:接口是一种规范和标准,他们可以约束类的行为,是一些方法特征的集合 语法: [修饰符] interface 接口名 extends 父接口1,夫接口2....... ...

  2. JavaSE入门学习21:Java面向对象之接口(interface)(二)

    一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.j ...

  3. python面向对象 : 抽象类(接口类),多态,封装(私有制封装)

    一. 抽象类(接口类) 与java一样, python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的类, 它的特殊之处在于只能被继承, 不能被实例化. 从设计角度去看, 如果类是从现实对 ...

  4. JavaSE入门学习20:Java面向对象之接口(interface)(一)

    一Java接口 接口(英文:interface)是抽象方法和常量值的集合,在Java编程语言中是一个抽象类型,接口通常以interface来声 明.类是一种详细实现体.而接口定义了某一批类所须要遵守的 ...

  5. 【学习笔记】--- 老男孩学Python,day18 面向对象------抽象类(接口类), 多态, 封装

    抽象类,接口类 Python没有接口这个概念 抽象类(接口类): 目的是制定一个规范 要学会归一化设计,有重复的东西就要想把它们合并起来 from abc import ABCMeta, abstra ...

  6. Java面向对象之 接口: [修饰符] interface 接口名 {...};子接口:[修饰符] interface 接口名 extends 父接口,父接口2...{...}

    1.什么是接口? 类比抽象类,把功能或者特性类似的一类 抽象的更彻底,可以提炼出更加特殊的"抽象类"----接口 2.如何定义接口 语法:  [修饰符] interface 接口名 ...

  7. java面向对象--抽象类和接口

    如果某个父类只知道其子类应该包含哪些方法,但无法知道如何实现这些方法,同时要使用多态的特性,怎么办? 抽象方法:关键字abstract允许在一个类中创建一个或多个没有方法体的方法--只提供方法签名,但 ...

  8. Java面向对象—抽象类和接口

    本文引用海子的一篇文章:http://www.cnblogs.com/dolphin0520/p/3811437.html 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法 ...

  9. Java面向对象---抽象类与接口

    final关键字 1.final关键字在java中被称为完结器,表示最终的意思: 2.final能声明类.方法.属性: 3.使用final声明的类不能被继承,使用final声明的方法不能被重写,使用f ...

  10. java 面向对象抽象类和接口

    1.abstract:可以修饰类和方法,被abstract修饰过的称为抽象类和抽象方法. 抽象类: 除了不可以创建对象, 其他和普通类一致. 可以有成员方法.静态方法和构造方法(提供给子类调用)等. ...

随机推荐

  1. markdown常用语法使用笔记+使用技巧(持续更新......)

    参考引用内容: 简书教程 一 基本语法 1. 标题 语法: 在想要设置为标题的文字前面加#来表示,一个#是一级标题,二个#是二级标题,以此类推.支持六级标题. 注:标准语法一般在#后跟个空格再写文字 ...

  2. 使用Python通过SMTP发送邮件

    有些业务可能由于各种各样的原因并不适用于Zabbix监控,这时如果要做到系统出问题能立即发送邮件,就需要自己来写监控脚本了,出问题要实时通过邮件报警,以下案例使用Python脚本实现通过SMTP协议发 ...

  3. [scrapy]安装报错: Twisted安装错误

    http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载whl文件 然后 pip install <whl文件名> 安装 Scrapy s ...

  4. CCF_201312-4_有趣的数

    dp题,dp[i][j]代表i位数,j状态的数量.其中,j 的状态表示值有6种. 0 1 2     √ j = 0 3 01 02   √ j = 1 03 12 13 23   √ j = 2 0 ...

  5. 曹工说Spring Boot源码(16)-- Spring从xml文件里到底得到了什么(aop:config完整解析【上】)

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

  6. 林大妈的JavaScript进阶知识(二):JS异步行为

    JavaScript 是单线程执行的 JavaScript运行在浏览器中.浏览器是多线程的,但只分配了其中一条给JavaScript,作为它的主线程.对于编码者来说,JavaScript是单线程的.因 ...

  7. Go语言实现:【剑指offer】最小的K个数

    该题目来源于牛客网<剑指offer>专题. 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. Go语言实现: fu ...

  8. c++ 内存分配中一个有趣的小问题

    以下代码测试环境:vs2019 执行这么一段代码,看看会发生什么. int main() { ] = { }; arr[] = ; } 毫无疑问,会报错,因为访问越界了. 再看看另一段代码 ] = { ...

  9. [MP3]MP3固件持续分享(2019.1.25)

    转载自我的博客:https://blog.ljyngup.com/archives/179.html/ 所有的固件到我的博客就可以下载哦 最后更新于2019.2.1 前言 这篇文章会持续更新不同型号的 ...

  10. 某oa系统的审计

    title: 某oa系统的审计 date: 2018-03-07 17:18:16 tags: --- 信呼OA 闲着没事,java学累了来整理下以前审的一个觉得很有意思的cms,这个作者写的比较灵活 ...