JAVA学习经验--总结JAVA抽象类和接口

* --总结JAVA抽象类和接口
 * 1.抽象类:
 *   
   
   
 1》抽象类可以修饰方法,修饰类,但不能修饰属性,不能被实例化
 *   
   
   
 2》抽象类可以被继承,只能是单继承,继承抽象类必须实现抽象方法
 *   
   
   
 3》抽象类不能被static ,fina,private一起修饰
 *   
   
   
 4》抽象类是有多态性的
 *
 * 2.接口:
 *   
   
   
 1》接口是一种特殊的抽象类,不能被实例化
 *   
   
   
 2》接口申明的属性默认关键字为public abstract static
 *   
   
   
 3》接口申明的方法默认关键字为 public abstract
 *   
   
   
 4》接口是可以被继承的,接口可以被继承多个,也可已继承多个
 *   
   
   
 5》接口是有多态的
 *

package come.java.zhangfan.test3;

public class Test  {
    public static void main(String[] args) {
        Students s =new Students();
        t1(s);//输出 ---    woshi Student

        T  t =new T();
        t(t);
    }
    //抽象类的多态性
    public static void t1(Person p ){
        p.T();
    }

    //接口的多态性
    public static void t(Runner p){
        p.run();//输出 - -- woshi Run
    }
}

//抽象类的应用
//申明抽象类
abstract class Person{
//    字段 i 的修饰符不合法;只允许使用“公用”、“受保护”、“私有”、“静态”、“终态”、“瞬态”或“易变”
//    属性无法被覆盖
//    abstract int i ;

//    类型 Person 中的抽象方法 T 只能设置可视性修饰符“公用”或“受保护”中的一个
//    如果static 那么意味着可以不创建对象直接调用该方法,与abstact 冲突
//    abstract static public void T();

//    类型 Person 中的抽象方法 T 只能设置可视性修饰符“公用”或“受保护”中的一个
//    本身就冲突,不解释
//    abstract final public void T();

//    类型 Person 中的抽象方法 T 只能设置可视性修饰符“公用”或“受保护”中的一个
//    私有方法无法被覆盖
//    abstract private void T();

    abstract public void T();    //True
}
//申明一个Student类继承抽象类,并重写T方法
class Students extends Person{
    public void T(){
        System.out.println("woshi Student");
    }
}

//接口的应用
interface Runner{
    public abstract void run();
}
interface Swimmer{
    void swim();
}
interface Flier {
    void fly();
}
//接口可以多继承
interface t extends Runner,Swimmer,Flier{

}
//必须申明所有继承的方法
class t1 implements t{

    @Override
    public void run() {
        // TODO 自动生成的方法存根

    }

    @Override
    public void swim() {
        // TODO 自动生成的方法存根

    }

    @Override
    public void fly() {
        // TODO 自动生成的方法存根

    }

}

//接口可以多引用//必须申明所有继承的方法
class T implements Flier,Runner,Swimmer{

    @Override
    public void fly() {
        // TODO 自动生成的方法存根
        System.out.println("woshi fly");
    }

    @Override
    public void swim() {
        // TODO 自动生成的方法存根
        System.out.println("woshi Swim");
    }

    @Override
    public void run() {
        // TODO 自动生成的方法存根
        System.out.println("woshi Run");
    }

}
时间: 2024-10-19 10:53:41

JAVA学习经验--总结JAVA抽象类和接口的相关文章

java随笔:浅谈抽象类与接口

一.介绍. 接口和内部类为我们提供了一种讲接口与实现分离的更加结构化的方法. 没有足够信息描述的类我们可以称它为抽象类. 二.问题引入. 我们都知道门具有打开与关闭的功能,还有上锁等功能.门怎么打开与关闭是由设计师来决定的.这时我们可以设定一个抽象类. 1 abstract class door{ 2 abstract void open(); 3 abstract void close(); 4 } 假如此时我们给门加入报警的功能怎么办呢.当然我们不能在原有的door类中直接加入alarm的功

java学习笔记3——java关键字

java学习笔记3——java关键字 虽然老师说不用刻意的去记忆,但是我还是在网上找到了非常详细的注解,再次收藏 关键字的类型表: 各个关键字的详细注解和实例,按首字母排序: 1.abstract abstract 关键字可以修改类或方法. abstract 类可以扩展(增加子类),但不能直接实例化. abstract 方法不在声明它的类中实现,但必须在某个子类中重写. -示例- public abstract class MyClass{ } public abstract String my

Java学习笔记(Java语言规范,API,JDK,IDE)

Java语言规范:java.sun.com/docs/books/jls 三个版本的API:J2SE J2EE J2ME 1. J2SE 客户端独立应用程序或者applet 2. J2EE 服务端应用程序 [Java Servlets&JavaServer Page] 3. J2ME 移动设备变成 JDK为Java开发提供一个开发环境(IDE) Java学习笔记(Java语言规范,API,JDK,IDE)

java学习1-初识java编程

需要安装的软件 1.java jre 2.java JDK EE版本 3.UltraEdit 网站:http://www.oracle.com/technetwork/java/javase/downloads/index.html 本人安装java目录为C:\Java\jdk1.8.0_05\bin. javac----编译器 java----字节码解释器 jar---jar包压缩 使用命令行javac编译时需要使用 set path=C:\Java\jdk1.8.0_05\bin设置编译器所

Java学习之道:Java 导出EXCEL

1.Apache POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能. .NET的开发人员则可以利用NPOI (POI for .NET) 来存取 POI 的功能. 2.POI结构 HSSF - 提供读写Microsoft Excel XLS格式档案的功能. XSSF - 提供读写Microsoft Excel OOXML XLSX格式档案的功能. HWPF - 提供读写Microsoft

好程序员Java学习路线分享Java面试题之加载机制

好程序员Java学习路线分享Java面试题之加载机制,面试场景:面试官第一问:请问,我现在编写一个类,类全名如下:java.lang.String,我们知道JDK也给我们听过了一个java.lang.String,那么,我们编写的这个String类能否替换到JDK默认提供,也就是说程序实际运行的时候,会加载我们的String还是JDK的String?为什么?如果,你无法确定?那么第二问:了解类的加载机制吗?知道JDK的类加载器吗?双亲委托机制说说看如果,你还不了解,那么我们聊聊今天的天气吧!1,

Java基础__慕课网学习(24):深入理解抽象类与接口(转)

深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然.今天我们就一起来学习一下Java中的接口和抽象类.下面是本文的目录大纲: 一.抽象类 二.接口 三.抽象类和接口的区别 一.抽象类 在了解抽象类之前,先来了解一下抽象方法.抽象方法是一种特殊的方法:它只有声明,而没有具体的实现.抽象方法的声明格式为:

关于JAVA继承、多态、抽象类、接口等性质的学习(3)

抽象类:abstract class 接口:interface 在java的类中,只要有一个方法为抽象方法,那么该类就是抽象类.换句话说,抽象类可以提供部分方法的具体实现,这一点在接口中是不被允许的. 接口中,只能够有方法的定义,而不能有方法体. 关于抽象类和接口,很容易看出来它们并不能对对象进行实例化操作,那么它们的唯一存在意义就是拿来继承用的.假如说一个继承了抽象类的类,如果没有将父类的抽象方法全部实现,那么它仍然是一个抽象类. 抽象类中的抽象方法必须是public或者protect的(默认

Java学习经验

随着Java学习的深入,越来越感觉记笔记的重要性,一方面可以使自己更加善于总结,提高对项目和自己的认知,另一方面可以让知识条例更加鲜明,并且加深对知识点的记忆.Java是一门很早开始兴起的语言,用途非常强大,适用于安卓.网站后台.深入算法研究.大数据.分布式云计算等等技术应用,是至今为止最为广泛适用的计算机编程语言之一.但是这些应用的前提是要有一个比较好的Java语言基础,只有这样在以后的编程中才会有比较大的用途,才能使功能开发的得心应手.今天因为是本Java学习系列的第一篇文章,就不谈后面比较