1. 程式人生 > 其它 >Java學習第20天

Java學習第20天

介面的成員特點:

(1) 成員變數:只能是常量。預設修飾符:public static final

(2)構造方法:介面沒有構造方法,因為介面主要是對行為進行抽象,是沒有具體存在,一個類如果沒有父類,預設繼承自Object類

(3)成員方法:只能是抽象方法,預設修飾符:public abstract;

介面示例:

package jicheng.com;

public interface Write {
void write();
}

package jicheng.com;

public abstract class Animal2 {
private int age;
private

String name;

public Animal2() {
}

public Animal2(int age, String name) {
this.age = age;
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name
= name;
}

public abstract void eat();
public abstract void speak();

public void run(){
System.out.println("他能跑");
}
}

package jicheng.com;

public class Cat3 extends Animal2 implements Write {
@Override
public void eat() {
System.out.println("貓吃魚");
}

@Override
public void speak() {
System.out

.println("喵喵");
}

@Override
public void write() {
System.out.println("貓能寫字");
}

public Cat3() {
}

public Cat3(int age, String name) {
super(age, name);
}

}

package jicheng.com;

public class Demo5 {
public static void main(String[] args) {

System.out.println("-------------");
Write w=new Cat3();
w.write();
((Cat3) w).eat();
((Cat3) w).speak();
((Cat3) w).setAge(18);
((Cat3) w).setName("加菲");
System.out.println(((Cat3) w).getAge()+" "+((Cat3) w).getName());
w=new Cat3(19,"湯姆");
System.out.println(((Cat3) w).getAge()+" "+((Cat3) w).getName());
System.out.println("-------------");

Animal2 a=new Cat3();
a.setAge(18);
a.setName("加菲");
a.speak();
a.eat();
((Cat3) a).write();
System.out.println(a.getAge()+" "+a.getName());
a=new Cat3(19,"湯姆");
System.out.println(a.getAge()+" "+a.getName());
System.out.println("------------");
//最後一種方法最實用
Cat3 c=new Cat3(18,"加菲");
c.eat();
c.speak();
c.write();
System.out.println(c.getAge()+" "+c.getName());
}
}

類與介面的關係:

類和類的關係:繼承關係,只能單繼承,但可以多層繼承

類和介面關係:實現關係,可以單實現,也可以多實現,還可以在繼承一個類的同時實現多個介面。

介面和介面的關係:繼承關係,可以單繼承也可以多繼承。