1. 抽象 abstract 关键字 abstract 用来修饰class 则 这个类 叫 抽象类 抽象类 不允许使用 new 类名() 方法 进行 创建对象 abstract 用来修饰 方法 则这个方法叫抽象方法 抽象方法 没有具体的方法的实现, 即 不需要写 {} 访问修饰符 abstract 方法名(参数类型 参数值,......); 抽象方法 只能写在 抽象类里--------------重要 2. 接口 interface 关键字 由于 java 是 单继承, 如果 一个类 想要 实现 多继承 如何? 你可以使用 继承+接口的方式 来实现 java 继承: a is b , a 是 b 的关系 接口: a have/has b , a 有b 的关系 麻雀是 鸟, 麻雀 具备 飞行的能力 鸵鸟 会飞 吗? 首先 : 在 Bird 里 增加 一个 fly 方法 但 鸵鸟也是鸟, 继承bird 那么 他就会 fly() 但 事实上 鸵鸟不会飞 --------------------因此 不对
package com.ly.bird;
public abstract class Bird {
/**
* 攻击
*/
public abstract void attack();
}
public interface IFly { void fly(); }
package com.ly.bird;
public class BobBird extends Bird implements IFly{
@Override
public void attack() {
System.out.println("---bor bird-- attack--");
}
@Override
public void fly() {
System.out.println("------变成炸弹飞------");
}
}
package com.ly.bird;
public class SplitBird extends Bird implements IFly{
@Override
public void attack() {
System.out.println("----------split bird attack-");
}
@Override
public void fly() {
System.out.println("--------1变3 飞------");
}
}
public class TestBird {
public static void main(String[] args) {
SplitBird s = new SplitBird();
s.fly();
}
}