|
/*
* 1.抽象类:抽象类中可以有 普通方法啊和抽象方法(0-n个)。
* 2.当一个抽象类中全部都是抽象方法的时候,这个类 变成了一个 接口!
* 3.表面上看,接口是一个特殊的抽象类,但是类是类,接口是接口 ,是并列的关系! (接口不属于类,接口没有构造器)
* 4.创建接口方式:(1)把class改成interface (2)右键–创建—interface
* 5.接口中包含什么? 1.常量 2.抽象方法
* 6.常量 ,抽象方法 前 有固定的修饰符:(必须)
* 常量:public static final
* 抽象方法:public abstract
* 假如你没有写全,系统会默认给你补全
* 7.接口用途:定义规则。
* 8.一个类,可以实现一个接口,用implements关键词 ,一旦实现接口,就要实现(重写)全部的抽象方法!
* 9.假如实现类没有实现全部的抽象方法呢?那么这个实现类 就变成了 抽象类!
* 10.java中只有单继承! Student extends Person,Animal—错误的写法
* 11.java中可以有实现,实现多个接口,就全部实现抽象方法即可!
* 12.单继承,多实现—为啥啊??(自己思考一下)
* 13.可以又继承又实现吗?可以 语法只能:Student extends Person implements Test,Demo(先继承,后实现!必须这样写!)
* 代码演示: public interface Test { //创建接口 int NUM = 10; // public static final int NUM=10; void eat(String name); //省略了public abstract,但系统默认补全 void study(); void sleep(int age);}// 接口的实现类class Student implements Test, Demo { //多实现-->实现多个接口,但要实现(重写)全部的抽象类 @Override public void eat(String name) { System.out.println("我们都要吃饭..."); } @Override public void study() { System.out.println("我们要好好学习"); } @Override public void sleep(int age) { System.out.println("我们没有睡觉8小时..."); } @Override public void say() { // TODO Auto-generated method stub } @Override public String cook() { // TODO Auto-generated method stub return null; }}interface Demo { //接口,有两个抽象方法 void say(); String cook();}class T { //测试类 //main方法要是没在public修饰的类中的时候,要用run as===》run configurations配置 public static void main(String[] args) { //接口不能创建对象 //Test t=new Test(); 写法错误 Test t=new Student(); //如何访问到接口中的常量NUM System.out.println(t.NUM); System.out.println(Student.NUM); System.out.println(Test.NUM); Student s=new Student(); System.out.println(s.NUM); System.out.println(new Student().NUM); //原因:常量前面是public static final }}
|