위 예제는 data 클래스의 두 가지 특징을 보여준다.
• 첫 번째 eq에서 S1으로부터 만든 String 프로퍼티는 보통 객체를 문자열로 만들었을 때 보는 문자열과 다르다. data 클래스에 의해 만들어진 문자열은 파라미터 이름과 객체에 담긴 데이터 내용이 표시된다. toString() 코드를 추가로 작성하지 않아도 data 클래스는 객체를 더 읽기 쉽고 보기 좋은 형식으로 표현해준다.
• 같은 데이터를 포함(모든 프로퍼티의 값이 같음)하는 같은 data 클래스 인스턴스를 두 개 만들면, 두 인스턴스가 동등(== 연산이 true를 반환)하다고 기대할 것이다. 일반적인 클래스에서 이런 동작을 구현하려면 인스턴스를 비교하는 equals()라는 특별한 멤버 함수를 정의해야 한다. data 클래스에서는 equals()가 자동으로 생성되며, 이 equals() 함수는 생성자 파라미터에 열거된 모든 프로퍼티가 같은지 검사하는 식으로 구현된다.