抽象类、接口

为什么要用抽象类:

    子类万一没有重写正确,也没有提示。

假设父类的代码如下

public class USB {
     public void QiDong(){

     }
     public void TingZhi(){

     }
}

子类中的代码如下:对父类中的方法的重写

public class UPan extends USB {      
    public void Qidong(){            //这里的Qidong 并不是对父类函数的重写
        System.out.println("u盘启动了");
    }
    public void TingZhi(){
        System.out.println("u盘停止运行了");
    }
}

这样的代码,在Eclipse中是不会报错的;

抽象类:不知道是具体什么东西的类。

写法:abstract class 类名

public abstract class USB {

}

抽象方法:不知道是具体是做什么的方法;

写法:abstract 返回类型 函数名(形参);      抽象方法不需要写函数体

派生类中,可以不实现某些抽象方法,但派生类必须要声明为抽象类。
抽象类中,可以有抽象方法,也可以有非抽象方法。抽象类中还可以有成员变量。

public abstract class USB {
      public  String JiaGe;

     public abstract void QiDong();
     public abstract void TingZhi();

}

 接口:

接口的作用:主要是起一个约束的作用  可以理解成为构架一个大框  代码格式只能按照规定的格式写

定义:      文件—新建—接口       // 接口名首字母加一个大写的I

接口定义时,接口名字尽量是形容词,或者描述性的词

接口的内容尽量的少,方便灵活使用         —接口分离原则

interface 接口名 extends 父接口列表{

    final 类型 常量名=值;                     //规定了需要按照什么格式去写,如果和这个格式不统一,就会报错

    public void 方法名(形参);
}

接口的实现:

 abstract class 类名 extends 父类 implements 接口列表{}

前面说道接口的作用就是约束,那么具体来看一下是怎么约束的

创建一个接口     新建—接口   在接口中录入以下代码

public interface IJiSuan {

    public int a=0;

    public void Suan(int a, int b);
}

然后我们新建一个类   新建-类  添加接口,点击确定,就会自动生成以下代码;

public abstract class YunSuan implements IJiSuan {

    @Override
    public void Suan(int a, int b) {
        // TODO 自动生成的方法存根

    }

}

假设我们将方法名改成   suan   系统就会自动报错

final  可以修饰成员变量(常量)、成员方法(不允许重写)、类(不允许被继承)

  

时间: 2024-10-16 06:43:09

抽象类、接口的相关文章

小知识(五):抽象类&接口

抽象类abstract: 抽象类和抽象方法可以用abstract关键字进行标识.就是没有完全定义的类或方法.所以不能直接实例化操作. 就因为他没完全定义所以不能用sealed关键字进行密封. 抽象方法不含程序主体: public abstract class Student { //抽象方法,不含程序体 public abstract void GetStudentID(); //子类可访问字段 prodected int i; //定义i的属性 public int I { get { ret

普通类 抽象类 接口

首先得搞懂什么是抽象类:一.概念:    在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样.并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类.    比如:如果我们进行一个图形编辑软件的开发,就会发现问题领域存在着圆.三角形这样一些具体概念.它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域是不存在的,它就是一个抽象概念.正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的

虚函数/纯虚函数/抽象类/接口/虚基类

1.多态 在面向对象语言中,接口的多种不同实现方式即为多态.多态是指,用父类的指针指向子类的实例(对象),然后通过父类的指针调用实际子类的成员函数. 在Java中,没有指针,就直接用父类实例化子类对象 多态性就是允许将子类类型的指针赋值给父类类型的指针,多态是通过虚函数实现的,多态可以让父类的指针有“多种形态”,这是一种泛型技术. 所谓泛型技术,就是试图使用不变的代码来实现可变的算法 2.虚函数 在基类的类定义中,定义虚函数的一般形式: Virtual 函数返回值类型 虚函数名(形参表){ 函数

面向对象的理解 抽象类&接口

一.关于面向对象 1.什么是面向对象 在解释面向对象之前,先说说面向过程.学过C的同学都知道,C就是面向过程的一种语言.那什么是面向过程呢?比方说组装主机,对于面向过程,需要从0开始.买cpu,显卡,主板,电源,风扇,把这些都通过主板链接到一起.我需要清楚的知道主机组装的每一个步骤. 介绍了面向过程,再说会正题,什么是面向对象?对于上面的装主机过程面向对象会把主机先抽象成一个机箱,机箱里有cpu,显卡,主板,电源.用主机的人,不关心里面是怎么工作的,也不需要知道内部逻辑,只知道插上电源就能用.面

19 抽象类 接口类 封装. 多态

主要内容: 1.  抽象类(接口类): 制定一个规范  : from abc import ABCMeta,abstractmethod class Payment(metaclass=ABCMeta): @abstractmethod def pay(self):pass class Alipay(Payment): def __init__(self,money): self.money = money def pay(self): print('使用支付宝支付了%s' % self.mon

“全栈2019”Java第一百零六章:匿名内部类与抽象类接口注意事项

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第一百零六章:匿名内部类与抽象类接口注意事项 下一章 "全栈2019"Java第一百零七章:匿名内部类与构造方法注意事项 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复&quo

Java实训笔记(二)——-抽象类-接口-泛型-集合

1.1方法的可变参数从JDK1.5之后,定义方法时参数的个数可以变化语法:最后一个数据类型后增加3个点注意:1.可变参数只能处于参数列表的最后:2.一个方法中最多只能包含一个可变参数:3.可变参数的本质就是一个数组,因此在调用一个包含可变参数的方法时,既可以传人多个参数,也可以传入一个数组.1.2装箱与拆箱基本数据类型与对应的封装类之间能够自动进行转换,其本质是Java的自动装箱与拆箱过程.-装箱是指将基本类型数据值转换成对应的封装类对象,即将栈中的数据封装成对象存放到堆中的过程.-拆箱是装箱的

PHP基础------抽象类------接口

<?php header("content-type:text/html; charset=utf-8"); //抽象类,抽象类不能被实例化,抽象方法不能有方法体,只能由子类继承去实现,抽象方法用abstract修饰 abstract class Person { abstract function eat(); abstract function say(); } class son extends Person { function eat() { echo "我能

抽象类/接口

回顾:1.重写(override): 1)父子类中,方法签名相同,方法体不同 2)重写方法被调用时,看对象的类型 3)两同两小一大: 3.1)方法名同,参数列表同 3.2)子类返回值类型小于等于父类 3.2.1)void时,必须相同 3.2.2)基本类型时,必须相同 3.2.3)引用类型时,子类小于等于父类(父类大,子类小) 子类抛出的异常小于等于父类-----后期说 3.3)子类的访问权限大于或等于父类2.重写与重载的区别 1)重写(override):父子类,方法名同,参数列表同 “运行期”

【Java】第10讲:抽象类.接口

用处:父类的方法的不确定性,不写实现结果的话就要抽象化(abstract),如下下 隐藏要求,继承抽象类时,必须要实现所有的抽象方法,因为作者不知道子类需要什么,只是提供方法 接口 抽象类可以有实现主体,接口不能有 接口变量可以有变量,必须初始化,final,piblic,static