面向对象基础

2019-12-23  本文已影响0人  chrisghb
class Student extends Person {
    protected int score;

    public Student(String name, int age, int score) {
        super(); // 自动调用父类的构造方法
        this.score = score;
    }
}

抽象类是对本质的抽象,接口是对动作的抽象。
抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。
使用抽象类是为了代码的复用,而使用接口的动机是为了实现多态性。

abstract class interface
只能extends一个class 可以implements多个interface
可以定义实例字段 不能定义实例字段
可以定义抽象方法 必须定义抽象方法
可以定义普通方法 不能定义普通方法
可以包含初始化块 不能包含初始化块
可以定义非抽象方法 可以定义default方法

注意:接口中定义函数,而在抽象类中定义默认的实现
default方法的目的是,当我们需要给接口新增一个方法时,会涉及到修改全部子类。如果新增的是default方法,那么子类就不必全部修改,只需要在需要覆写的地方去覆写新增方法。

class Test{
    public static int z(int xx,int yy){
        return xx+yy;
    }
 
    public int zz(int xx,int yy){
        return xx+yy;
    }
}

public class mainClass{
    int sum;
    public static void main(String args[]){
 
        sum=Test.z(1,2); //直接用 类.方法或者属性就可以使用该方法或属性。
        System.out.print(sum);
 
        Test t=new Test();
        sum=t.zz(1,2); //因为zz不是静态方法,只能只能用Test类创建一个t对象,然后调用该对象的方法。
        System.out.print(sum);
    }
}

因为interface是一个纯抽象类,所以它不能定义实例字段。但是,interface是可以有静态字段的,并且静态字段必须为final类型。

public interface Person {
    public static final int MALE = 1;
    public static final int FEMALE = 2;
}
上一篇 下一篇

猜你喜欢

热点阅读