抽象类

用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. abp vnext2.0之核心组件模块加载系统源码解析与简单应用

    abp vnext是abp官方在abp的基础之上构建的微服务架构,说实话,看完核心组件源码的时候,很兴奋,整个框架将组件化的细想运用的很好,真的超级解耦.老版整个框架依赖Castle的问题,vnext ...

  2. CTF--HTTP服务--路径遍历(拿到www-data用户权限)

    开门见山 1. 扫描靶机ip,发现PCS 172.18.4.20 2. 用nmap扫描靶机开放服务及版本 3. 再扫描靶机的全部信息 4. 用nikto工具探测http服务敏感信息 5. 用dirb工 ...

  3. Shell常用命令之yum

    介绍 yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理 ...

  4. linux-centos7 gcc 简单使用

    在虚拟机VirtualBox 安装CentOS6.3后,默认是没有安装gcc.                进入root,命令 yum -y install gcc gcc-c++ autoconf ...

  5. SVN: 聚合工程下的子工程无法使用 svn:ignore

    当想将聚合工程manager下子工程没用的一些文件使用svn:ignore,发现该功能不能使用 这是因为SVN 服务器上还没有这些子工程的文件夹,只有聚合工程的文件夹,所以SVN认为在服务器上这些代码 ...

  6. TCP UDP协议的三次握手

    接触网络协议栈TCP/IP的人,就一定绕不开的一个话题就是TCP的三次握手.下面我将简单介绍一下. 三次握手流程的本质,可以这么理解:TCP的三次握手其实是双方各一次握手,各一次确认,只是其中一次握手 ...

  7. c++中重载运算符

    重载运算符 1,成员函数运算符 运算符重载为类的成员函数一般格式如下 <函数类型> operator <运算符> (参数表) {函数体} 调用成员函数运算符如下 <对象名 ...

  8. sql server如何判断数据库是否存在

    如何判断数据库是否存在       执行下列的SQL,获得一张表,根据表的行数来判断. select * from master..sysdatabases where name=N'所查询的数据库名 ...

  9. Ubuntu下python使用pyenv+virtualenv进行版本和包隔离

    安装pyenv 参考:https://github.com/pyenv/pyenv git clone https://github.com/pyenv/pyenv.git ~/.pyenv echo ...

  10. Codeforces 1050D Three Religions (dp+序列自动机)

    题意: 给一个1e5的串str,然后有三个起始空串,不超过1000次操作,对三个字符串的一个尾部加一个字符或者减一个字符,保证每个字符不会超过250 每次操作之后询问你这三个串是不是可以组成str的子 ...