抽象类
- 特点
- 有抽象方法的类只能被定义成抽象类
- 抽象类不能实例化,即不能用new来实例化抽象类
- 抽象类可以包含属性、方法、构造方法。但构造方法不能用来new实例,只能用来被子类调用
- 抽象类只能用来被继承
- 抽象类中的抽象方法必须被子类实现
- 代码
package dxt;
public abstract class Animal {
abstract public void shout();
public void run(){
System.out.println("韩跑跑");
}
public static void main(String[] args){
Animal a = new Dog();
a.shout();
}
}
class Dog extends Animal{
public void shout(){
System.out.println("嗷呜嗷呜...");
}
}
接口
- 特点
- 接口定义为interface 不是class
- 接口中所有方法都是且只能是 抽象方法,接口只定义规范,不提供任何实现,即public abstract
- 接口和实现类不是父子关系,是实现规则关系
- 一个接口可以继承多个父接口(多继承)
- 接口中的属性都是且只能是常量,即 public static fianl
- 接口中不存在私有
- 子类通过implements继承接口
- 实现类可以实现多个父接口
- 代码
package dxt;
public class TestInterface {
public static void main(String[] args){
Hero rebort = new IronMan();
rebort.helpOther();
Volant s = new SpiderMan();
s.fly();
}
}
interface Volant{
int FLY_HEIGHT = 1000;
void fly();
}
interface Hero{
void helpOther();
}
class IronMan implements Volant, Hero{
public void fly(){
System.out.println("飞行高度"+FLY_HEIGHT+"米");
}
public void helpOther(){
System.out.println("帮邻居休水管");
}
}
class SpiderMan implements Volant{
public void fly(){
System.out.println("Are you kidding me???");
}
}