Abstract Class

  1. 在定义class的时候必须有abstract 关键字
  2. 抽象方法必须有abstract关键字。
  3. 可以有已经实现的方法。
  4. 可以定义static final 的常量。
  5. 可以实现接口。
  6. 抽象类实现接口可以不实现接口中的抽象方法,而在其具体的子类中实现,但是这样代码的可读性不是很好。

Interface

  1. 在定义class的时候必须有interface 关键字
  2. 方法默认是抽象方法,不需要abstract关键字。
  3. 不能有已经实现的方法。
  4. 可以定义static final 的常量。
  5. 可以用extends关键字继承接口, 而不能用implements。应为interface只能包含未实现的抽象方法,所以无法使用implements关键字。
  6. 接口中的抽象方法不能使用private和protected修饰符,可以不用修饰符或者使用public修饰符。在子类中实现接口的抽象方法的时候, 必须使用public关键字修饰。

Phone [interface]:

interface Phone{

    /**
* getPhoneNumber()
* @return
*/
String getPhoneNumber();
}

Iphone [interface]:

 public interface Iphone extends Phone{

     /**
* getPhoneName()
* @return
*/
String getPhoneName(); /**
* getPhoneType()
* @return
*/
int getPhoneType();
}

PhoneBase [abstract class]:

 public abstract class PhoneBase implements Iphone{

     private static final String TAG = "PhoneBase";

     abstract void fun1();

     void fun2(){
System.out.println("This is fun2");
} @Override
public String getPhoneName() {
// TODO Auto-generated method stub
return null;
} @Override
public int getPhoneType() {
// TODO Auto-generated method stub
return 0;
} @Override
public String getPhoneNumber() {
// TODO Auto-generated method stub
return null;
}
}

GsmPhone [normal class]:

 public class GsmPhone extends PhoneBase{

 @Override
void fun1() {
// TODO Auto-generated method stub }
}

//PhoneBase mPhoneBase1 = new PhoneBase(); //不能实例化一个抽象类
//Iphone p = new Iphone();//不能实例化一个接口
PhoneBase mPhoneBase = new GsmPhone();
Iphone iPhone = new GsmPhone();
Phone mPhone = new GsmPhone();

Java Abstract class and Interface的更多相关文章

  1. Java abstract class 和 interface 的区别

    Java abstract class 和 interface 的区别 1. abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制 2. 以Door的抽象概 ...

  2. 【转载】java abstract class和interface的区别

    转载:https://blog.csdn.net/b271737818/article/details/3950245 在Java语言中,abstract class和interface是支持抽象类定 ...

  3. 11)Java abstract class 和 interface

    abstract class 和 interface 的区别        含有abstract修饰符的class即为抽象类,abstract 类不能创建实例对象.含有abstract方法的类必须定义 ...

  4. Java abstract 抽象类 和interface接口的异同点

    abstract 抽象类 和interface接口的异同点 相同点: 抽象类和接口都不能实例化,他们都位于继承树顶端,被其他类实现和继承 都可以包含抽象方法,实现接口或者继承抽象类的非抽象类(普通类) ...

  5. Java abstract interface与 interface的区别

    我们常常遇到abstract class与 interface的区别,今天却遇到了abstract interface,感觉interface不用abstract再修饰了啊.结论:事实也确实如此,编译 ...

  6. Java中abstract class 和 interface 的解释和他们的异同点(转)

    (一)概述    在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存 在,才赋予了Java强大的 面向对象能力.abstract ...

  7. java中接口(interface)和虚基类(abstract class)的区别

    在Java语言中,abstract class和interface是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的面向对象能力.abstract class和interfa ...

  8. `Java`中`abstract class`与`interface`区别

    abstract class Java中允许使用abstract修饰符声明方法,此时只定义方法但是不实现方法(abstract修饰的方法没有主体,只有一个签名和一个分号). 以下是abstract方法 ...

  9. 深入理解abstract class和interface(转)

    原文地址 深入理解abstract class和interface java提高篇(四)-----抽象类与接口

随机推荐

  1. tar+gzip

    tar打gzip包: tar -czvf sourceDir.tar.gz sourceDir tar查看压缩包内容: tar -tvf sourceDir.tar.gz tar解压缩包crontab ...

  2. C#:实现接口中定义的事件

    public delegate void TestDelegate(); // delegate declaration public interface ITestInterface { event ...

  3. js 对象toString()方法

    ({}+{}).length == 30; ({}).toString() '[object Object]' 当对象需要调用toString()方法时会被自动调用.

  4. android相机调用及存储详解

    package com.firefly.six; import java.io.File; import java.io.FileInputStream; import java.io.FileNot ...

  5. rtc关机闹钟7 jni层 com_android_server_AlarmManagerService

    frameworks/base/services/core/jni/com_android_server_AlarmManagerService.cpp int AlarmImplAlarmDrive ...

  6. android 代码整体回退

    repo forall -c 'HAHA=`git log --before="3 days" -1 --pretty=format:"%H"`;git res ...

  7. 20151221001 GridView 模板

    <asp:GridView ID="GridView1"                 runat="server" AllowPaging=" ...

  8. linux下samba环境搭建

    1.安装samba apt-get install samba samba-common 2.修改配置 /etc/samba/smb.conf 在最后添加以下内容即可实现每个用户访问自己的home目录 ...

  9. linux ftp服务

    1 安装ftp服务 [root@localhost ~]# yum install vsftpd 启动:service vsftpd start 查看状态:systemctl |grep vsftpd ...

  10. ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛 The Book List

    描述 The history of Peking University Library is as long as the history of Peking University. It was b ...