码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-01-30 22:23:55      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:

* --总结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");
    }
   
}

 

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

标签:

原文地址:http://www.cnblogs.com/zhangfan94/p/zhangfan94.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!