JAVA基础(十二)抽象类与接口

抽象类

总结:

                类支持单继承。接口支持多继承

                类与类单继承,

                类实现接口,接口继承接口,先继承后实现

自己理解  抽象类:描述笼统的,模糊,不具体的具有共性的类 

抽象类格式

Public abstract class 类名{

     成员变量

//方法

    public  abstract     返回值类型   方法名  (参数);

    Public   abstract         void    get   ();//抽象函数。需要abstract修饰,并分号;结束

}

 

1.1      抽象类的特点:

1、抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。

2、抽象类不可以直接创建对象,原因:调用抽象方法没有意义。

3、只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。

4. 之所以继承抽象类,更多的是在思想,是面对共性类型操作会更简单。

抽象类  思想

1.抽象类一定是个父类,因为抽象类需要其子类覆盖所有的抽象方法,才可以对子类进行实例化对象

2.抽象类中可以不定义抽象方法。

3. 一旦一个类继承了抽象类,。

3.1  子类要么重写父类的方法,明确其功能

3.2     要么继续抽象下去

1、private:

私有的方法子类是无法继承到的,也不存在覆盖,而abstract和private一起使用修饰方法,abstract既要子类去实现这                                 个方法,而private修饰子类根本无法得到父类这个方法。互相矛盾。

2、final,暂时不关注  3、static,暂时不关注

抽象类与普通类的区别

抽象类:            1.既可以定义抽象方法,也可以定义一般方法

2.不可以实例化

3.描述的事物可能信息不足

普通类:           1.只能定义普通方法

2. 可以实例化

3. 描述的事物很详细

    接口

自己理解

抽象类是现实事物的描述(模糊描述共有的特点);

接口是额外功能的集合

建立接口定义格式:interface   关键字

public interface 接口名 {

                 抽象方法1
                抽象方法2
                抽象方法3;

}                                              

伪代码

public interface Drink {
     //抽象方法
     public abstract void  drink();

}

                           使用interface代替了原来的class,

   其他步骤与定义类相同:

1.  接口中的方法均为公共访问的抽象方法

2.  接口中无法定义普通的成员变量

类实现接口

class 类 implements 接口 {

   重写接口中方法

}
例子
class 子类 extends 父类 implements 接口 {

       重写父类中方法

        重写接口中方法

}

伪代码

public class student implements smoking,Drink(接口支持多继承){

        (  重写接口中方法)

     public void smoke() {

            System.out.println("学生"); 

  }}在类实现接口后,该类就会将接口中的抽象方法继承过来,此时该类需要重写该抽象方法,完成具体的逻辑。

成员特点:

1、接口中可以定义变量,但是变量必须有固定的修饰符修饰,public static final 所以接口中的变量也称之为常量                                                                                                                                      其值不能改变。后面我们会讲解static与final关键字

2、接口中可以定义方法,方法也有固定的修饰符,public abstract

3、接口不可以创建对象。

4、子类必须覆盖掉接口中所有的抽象方法后,子类才可以实例化。否则子类是一个抽象类。

总结:接口在开发中的它好处

1、接口的出现扩展了功能。

2、接口其实就是暴漏出来的规则(方法)。

3、接口的出现降低了耦合性(融合度),即设备与设备之间实现了解耦。

原文地址:https://www.cnblogs.com/layuechuquwan/p/11287746.html

时间: 2024-10-13 17:27:51

JAVA基础(十二)抽象类与接口的相关文章

Java基础十二--多态是成员的特点

Java基础十二--多态是成员的特点 一.特点 1,成员变量. 编译和运行都参考等号的左边. 覆盖只发生在函数上,和变量没关系. Fu f = new Zi();System.out.println(f.num);//是父类,答案是3 2,成员函数(非静态). 编译看左边,运行看右边. 因为成员函数存在覆盖特性. Fu f = new Zi();//f.show();输出的是子类里面的show方法 3,静态函数. 编译和运行都看左边. 静态函数不具备多态性,多态性是对象的多态性,然后静态函数不涉

Java基础5:抽象类和接口

Java基础5:抽象类和接口 1 抽象类一般会实现一部分操作,并且留一些抽象方法让子类自己实现,比如Stringbuffer和Stringbuilder的父类abstractStringbuilder. 2 接口一般指一种规定,比如一个map接口中,可能需要实现增删改查等功能,如果你想实现一个具体map,这些方法就必须按照规定去实现. 3 另外,一个类可以实现多个接口,但是不能继承多个类. 然而接口却可以继承多个其他接口.这一点很神奇. 下面看一下具体的例子,有一些小细节平时可能不会注意. cl

java基础2:抽象类、接口与多态

关于Java基础的文章,我觉得写得还可以,以前发在了我其它的博客了,肯定是原创,现在再分享给大家出来. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Java基础-继承、抽象类、接口

继承和接口是OOP程序设计语言中非常重要的两个概念,也是经常让程序员对其使用比较混淆的.什么时候用继承好一些,什么时候用接口好一些呢? 首先,从OOP程序设计语言的多态特性来说两者都是多态的一种体现.继承更侧重于给对象进行归类(继承体系)和接口则侧重于对功能方法进行归类. 每个类都属于特定的继承体系,所有的类向上转换最终只能转成一个基类.继承将"做什么"和"怎么做"耦合在一起,如果需要复用现有的方法必须将新增的类添加到现有的继承体系中(或者采用包装类). 接口则可以

java基础十二[集合与泛型](阅读Head First Java记录)

集合 List 知道索引顺序的集合,ArrayList.LinkedList.Vector三个子类实现了List接口 ArrayList ArrayList没有排序方法,可以用Collections.sort(ArrayList对象)进行排序,但是Collections.sort()里面的ArrayList必须是String类型的,否则无法通过编译,除非该类型也继承或实现了Comparable LinkedList 针对经常插入或删除中间元素所涉及的高效率集合 Set 去重,独一无二的,不允许出

Java基础(十二)之包和权限访问

软件包 软件包解决了两个类名字一样的问题.软件包就是一个"文件夹". 包名的命名规范:1.要求所有字母都小写:2.包名一般情况下,是你的域名倒过来写.比如baidu.com,package com.baidu; 编写Test.java: package mings; //将类防止到一个包当中 public class Test{ public static void main(String[] args){ System.out.println("Hello,package!

Java基础十--接口

Java基础十--接口 一.接口的定义和实例 1 /* 2 abstract class AbsDemo 3 { 4 abstract void show1(); 5 abstract void show2(); 6 } 7 8 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用 9 另一种形式定义和表示,就是 接口 interface. 10 */ 11 12 //定义接口使用的关键字不是class,是interface. 13 //interface编译后还是.class文件,其实本质

java 基础(二)

java 基础(二)java 基础(二) 2016-2-1 by Damon 61. 编写多线程程序有几种实现方式 Java 5以前实现多线程有两种实现方法:一种是继承Thread类:另一种是实现Runnable接口.两种方式都要通过重写run()方法来定义线程的行为,推荐使用后者,因为Java中的继承是单继承,一个类有一个父类,如果继承了Thread类就无法再继承其他类了,显然使用Runnable接口更为灵活. 补充:Java 5以后创建线程还有第三种方式:实现Callable接口,该接口中的

Java语言中的----抽象类、接口

day12  Java语言中的抽象类与接口 一.抽象类和接口概述; 在昨天我们学习了Java的继承功能,这个是一个核心知识点,今天我们再继承的基础之上学习一下抽象类和接口这两个知识.什么是抽象类?如何定义一个抽象类?如何使用一个抽象类?这些都是我们需要掌握的. 同时我们还要知道如何来定义一个接口,在开发中定义接口来实现相关的功能是一个很重要的功能.如何来实现接口中的抽象方法,这些在这一节都会说到. 二.抽象类和接口 1.抽象类: 什么是抽象类?包含抽象方法的类就叫做抽象类 .使用abstract

Java 第十二章 继承 笔记

Java 第十二章  继承 笔记 一.使用继承:     1)方便修改代码     2)减少代码量 二.super 继承object 类:super 访问父类的无参构造:super 指的是object 的无参构造.     例:子类调用父类:super.属性 / super.方法    注意:子类不能继承父类私有属性:得用set.get方法来调用:    super只能写在代码块的第一句:super只能调用非私有的方法:    super只能出现在子类的方法和构造方法中. 三.不能被继承的父类成