抽象的概念就是抽象出共同属性:成员变量和方法

定义抽象使用abstract关键字定义抽象类和方法

抽象类 abstract class
 包含抽象方法的类,叫抽象类。

所以抽象类可以有private等多种权限的成员变量和非abstract的成员方法。当然抽象方法是一定要有的。

抽象类是用于单一继承的,不能实例化

  而继承类一定要实现抽象方法,因为抽象方法在抽象类里是没有实现行为的,访问权限只能是public。而非抽象方法则可以赋予方法的默认行为,访问权限可以多种,但需要考虑非抽象方法是否需要被继承类访问。

接口 interface
  接口,用于多重继承,也不能实例化。只能包含static final的成员变量,不过在interface中一般不定义成员变量。而成员方法在接口里只能是抽象方法,访问权限只能是public。

所以,无论抽象类还是接口,抽象方法都需要在子类中实现,而且在子类中实现这些方法一个都不能少。而抽象类里面的非抽象方法,则在子类可以不重写实现里面的行为

public class Child extends Children implements Lover{
public Child(String name) {
super(name);
} public void printName() {
System.out.println(super.getName());
} public void love(String name) {
System.out.println(name + ", I love you!");
} public static void main(String[] args) {
Child boy = new Child("Charley");
System.out.println(boy.getName()); Child girl = new Child("Queenie");
girl.printName(); boy.love(girl.getName());
girl.love(boy.getName());
}
} abstract class Children {
private String name; public Children(String name) {
this.name = name;
} //private then Child obj can not access this method
//private String getName() {
public String getName() {
return name;
} abstract void printName(); //haha()在子类中没有被实现
//abstract void haha();
} interface Lover{
void love(String name);
}

 Java接口和Java抽象类的区别

   1,抽象类里可以有构造方法,而接口内不能有构造方法。
2,抽象类中可以有普通成员变量,而接口中不能有普通成员变量。
public String pas ;//接口中定义会报错
   3,抽象类中可以包含非抽象的普通方法,而接口中所有的方法必须是抽象的,不能有非抽象的普通方法。
4,抽象类中的抽象方法的访问类型可以是public ,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
5,抽象类中可以包含静态方法,接口内不能包含静态方法。
6,抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,但接口中定义的变量只能是public static类型,并且默认为public static类型。
7,一个类可以实现多个接口,但只能继承一个抽象类。

在应用上的区别:

  接口更多的是在系统框架设计方法发挥作用,主要定义模块之间的通信,而抽象类在代码实现方面发挥作用,可以实现代码的重用

Java基础-四要素之一《抽象》(接口)的更多相关文章

  1. Java基础-四要素之一《封装》

    封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保 ...

  2. Java基础-四要素之一《多态》

    什么是多态 指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式.(发送消息就是函数调用) 多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的 ...

  3. Java基础-四要素之一《继承》

    继承的概念: 继承在本职上是特殊——一般的关系,即常说的is-a关系.子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的一些属性或方法. 继承是所有OOP语言不可缺少的部分,在java中使 ...

  4. java基础知识总结--继承和接口

    什么是继承?什么是接口?他们之间的区别和联系是什么? 什么是继承? 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能.多个类中存在相同属性和行 ...

  5. [Effective Java]第四章 类和接口

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. Java基础(十一):接口

    一.接口: 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明.一个类通过继承接口的方式,从而来继承接口的抽象方法. 接口并不是 ...

  7. Java基础第二天--多态、接口

    多态 多态的概述 同一个对象,在不同时刻表现出来的不同形态 多态的前提和体现 有继承/实现关系 有方法重写关系 有父类引用指向子类对象 public class Animal { public voi ...

  8. Java基础(四) StringBuffer、StringBuilder原理浅析

    StringBuilder与StringBuffer作用就是用来处理字符串,但String类本身也具备很多方法可以用来处理字符串,那么为什么还要引入这两个类呢? 关于String的讲解请看Java基础 ...

  9. java 基础 四种权限修饰符

    /** * Java有四种权限修饰符: * public > protected > (default) > private * 同一个类 YES YES YES YES * 同一个 ...

随机推荐

  1. JAVA基础之对象的初始化

    本文主要记录JAVA中对象的初始化过程,包括实例变量的初始化和类变量的初始化以及 final 关键字对初始化的影响.另外,还讨论了由于继承原因,探讨了引用变量的编译时类型和运行时类型 一,实例变量的初 ...

  2. 线性代数与MATALB1

    1图论的一个基本应用 下图描述了4个城市之间的航空航线图, 为了描述着4个城市之间航线的邻接关系,定义邻接矩阵 第i行描述从城市i出发,可以达到各个城市的情况, 可以证明,矩阵A^N表示一个人连续坐N ...

  3. AC日记——石子归并 codevs 1048

    1048 石子归并  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 有n堆石子排成一列,每堆石子 ...

  4. 错题726-java

    class Car extends Vehicle { public static void main (String[] args) { new Car(). run(); } private fi ...

  5. 03SpringMvc_自定义的spring.xml配置文件和逻辑视图名

    这篇文章的目的是实现Struts2中一种形式(封装视图的逻辑名称),在Struts2中Action处理后会返回"SUCCESS"这样,然后根据"SUCCESS" ...

  6. C# 与 LUA 的经验对比

    1,字符串遍历不同处:例: str = "汉字ABCabc"C#可以使用str[i]取得字符串中的汉字字符和拼音字符:Str[0] :汉Str[1]:字Str[2] : A依次类推 ...

  7. Resource interpreted as Script but transferred with MIME type text/plain:

    我用script做ajax跨域,请求返回的是个文本字符串,chrome提示:Resource interpreted as Script but transferred with MIME type ...

  8. Linux常用指令---tar | zip (解压缩)

    减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间.gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用.gzip不仅可以用 ...

  9. Java集合---面试题

    HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如此 ...

  10. [CareerCup] 9.1 Climbing Staircase 爬楼梯

    9.1 A child is running up a staircase with n steps, and can hop either 1 step, 2 steps, or 3 steps a ...