面向对象-------抽象类和接口
public abstract class Animal {
/**
* 抽象类语法:public abstract class 类名 {}
* 可以声明:属性和方法 构造器方法 抽象方法
* 特点1:抽象类里面不一定有抽象法方法 2:抽象类里面的方法不一定都是抽象方法,也可以有方法和构造器
* 3:有抽象方法的类一定是抽象类
*抽象类不能实例化兑现,只能通过向上转型进行实例化 Animal a =new Dog()
*/
int age;
public void sleep() {
}
public void shout() {
}
public Animal() {
}
/**
* 抽象方法的语法:public abstract void eat();
* 作用:1:一定会被子类重写
*/
public abstract void eat();
}
public class Dog extends Animal{
@Override
public void eat() {
System.out.println("吃骨头");
}}
接口
public interface Usb {
/**
* 接口
* 利用interface修饰的类叫接口
* 特点:1.变量是被 public static final修饰的(三单词可以省略) 必须给初始值
* 2.里面是抽象方法
* 3.接口不能实例化 没有构造器方法
* 4.接口和接口之间是继承关系(extends),多继承
* 5.类与接口之间是实现关系(implememts),多实现
* 6.有继承 有实现的时候,是先写继承(extends)后写实现(implements)
* java8以后的新特性
* 静态方法:不可以被子类继承
* default修饰的方法 可以被子类继承
*
* 两个接口中的方法一模一样,子类必须重写其中一个接口中的方法,然后另一个方法要使用接口名。super。方法名去调用
*/
public static final double type= 3.0;
public abstract void run();
public static void aa() {
System.out.println("我是接口中的静态1方法");
}
default void bb() {
System.out.println("我是default修饰的接口中的方法");
}
}