在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
特征是语言的结构构造,允许 -
它们可以被看作是承载默认实现和状态的接口。使用trait关键字定义 trait。 下面给出了一个特征的例子: trait Marks { void DisplayMarks() { println("Display Marks"); } } 然后可以使用 implement 关键字以类似于接口的方式实现 trait。 class Example { static void main(String[] args) { Student st = new Student(); st.StudentID = 1; st.Marks1 = 10; println(st.DisplayMarks()); } } trait Marks { void DisplayMarks() { println("Display Marks"); } } class Student implements Marks { int StudentID int Marks1; } 实现接口Traits 可以实现接口,在这种情况下,使用 interface 关键字声明接口。 下面给出了实现接口的特征的示例。在以下示例中,可以注意以下要点。
class Example { static void main(String[] args) { Student st = new Student(); st.StudentID = 1; st.Marks1 = 10; println(st.DisplayMarks()); println(st.DisplayTotal()); } } interface Total { void DisplayTotal() } trait Marks implements Total { void DisplayMarks() { println("Display Marks"); } void DisplayTotal() { println("Display Total"); } } class Student implements Marks { int StudentID int Marks1; } 上述程序的输出将是 - Display Marks Display Total 属性特征可以定义属性。下面给出了具有属性的trait的示例。 在以下示例中,integer 类型的 Marks1 是一个属性。 class Example { static void main(String[] args) { Student st = new Student(); st.StudentID = 1; println(st.DisplayMarks()); println(st.DisplayTotal()); } interface Total { void DisplayTotal() } trait Marks implements Total { int Marks1; void DisplayMarks() { this.Marks1 = 10; println(this.Marks1); } void DisplayTotal() { println("Display Total"); } } class Student implements Marks { int StudentID } } 上述程序的输出将是 - 10 Display Total 行为的构成特征可以用于以受控的方式实现多重继承,避免钻石问题。在下面的代码示例中,我们定义了两个特征 - Marks 和 Total。我们的 Student 类实现了两个特征。由于学生类扩展了这两个特征,它能够访问这两种方法 - DisplayMarks 和 DisplayTotal。 class Example { static void main(String[] args) { Student st = new Student(); st.StudentID = 1; println(st.DisplayMarks()); println(st.DisplayTotal()); } } trait Marks { void DisplayMarks() { println("Marks1"); } } trait Total { void DisplayTotal() { println("Total"); } } class Student implements Marks,Total { int StudentID } 上述程序的输出将是 -
扩展特征特征可能扩展另一个特征,在这种情况下,必须使用extends关键字。在下面的代码示例中,我们使用 Marks trait 扩展了 Total trait。 class Example { static void main(String[] args) { Student st = new Student(); st.StudentID = 1; println(st.DisplayMarks()); } } trait Marks { void DisplayMarks() { println("Marks1"); } } trait Total extends Marks { void DisplayMarks() { println("Total"); } } class Student implements Total { int StudentID } 上述程序的输出将是 - Total |
请发表评论