A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 范兵锋 中级黑马   /  2015-8-7 22:02  /  489 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

abstract class Student{//方法一定义成抽象,类也必须是抽象的
        abstract void study();//怎么学不确定,所以定义成抽象,study后只有小括号,无大括号,出现不确定的部分用抽象类
        void sleep(){//抽象类中也可以定义不抽象的方法
                System.out.println("躺着睡");
        }
}
interface Smoke{  //定义一个接口,提高扩展性,因为有的人抽烟,有的人不抽烟,所以不能定义在抽象类中
        public abstract void smoke();//接口中 方法必须是抽象的方法,所以 用 public abstract 修饰
        public static final int NUM = 1;//接口中的变量  名称 必须每个字母大写
}

//ZhangSan继承了Student并且        实现了Smoke方法,提高了扩展性      ,同时可以多实现                  
class ZhangSan extends Student implements Smoke{
       
        //抽象类调用,必须在子类中重写抽象类中的所有抽象方法,否则只覆盖部分抽象方法的话,那么子类也还是一个抽象类
        void study(){System.out.println("好好学习");}
       
        public void smoke(){System.out.println("吸烟");}//实现 ,必须加public
       
       
}
public class InterfaceDemo {
        public static void main(String[] args){
        ZhangSan t = new ZhangSan();
        System.out.println(t.NUM);
        t.study();
        t.smoke();
        t.sleep();
        }
}

4 个回复

倒序浏览
那个全局常量用接口名直接调用不是更好么?就不用创建对象了.
回复 使用道具 举报
努力吧,骚年
回复 使用道具 举报
不错 赞一个
回复 使用道具 举报
支持!!!加油!!!!!!!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马