接口基本+與抽象類
-
接口與抽象類:.
- 抽象類必須全部實現父類的方法,否則必須聲明子類爲抽象類 - 抽象類是對一類事物的高度抽象:其中既有方法也有屬性 - 接口:是對一系列動作的抽象 - 當需要對一類事物抽象時候:抽象類;對動作抽象使用接口:需要使用動作的對象去實現接口
-
對象的多態:
- 用接口來接收一個對象:只能執行對應接口的方法
Cooking cooking=new SCTeacher();
cooking.fry();
## Test:
public static void main(String[] args) {
// TODO Auto-generated method stub
SCTeacher scTeacher=new SCTeacher();
scTeacher.setInfo();
scTeacher.showInfo();
scTeacher.fry();
scTeacher.singing();
//用接口來接收:只能執行對應接口的
Cooking cooking=new SCTeacher();
}
## Sing:
package InterFace;
/**
* 歌唱的接口
* @author douer
*
*/
public interface Sing {
void singing();
}
package InterFace;
import com.sun.corba.se.spi.transport.SocketInfo;
/**
* 這個是描述會唱歌的廚子是一個老師
* @author douer
*
*/
public class SCTeacher extends Person1 implements Sing,Cooking{
/*
* 本身屬性
*/
String course;//教的科目
//設置屬性
public void setInfo() {
super.age=27;
super.sex=1;
super.name="張宇";
this.course="寶寶愛你";
}
@Override
public void showInfo() {
// TODO Auto-generated method stub
System.out.println("會唱歌的廚子是一個老師的信息是:");
System.out.println(super.age);
System.out.println(super.name);
System.out.println(super.sex);
System.out.println(this.course);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
@Override
public void fry() {
System.out.println(super.name+"老師拿手的廚藝是炒菜");
}
@Override
public void singing() {
System.out.println(super.name+"老師擅長美聲唱法");
}
}
--------------------------------------------------------------------------------------------------------------
package InterFace;
public abstract class Person1 {
int age;
String name;
int sex;
public abstract void showInfo() ;
}
---------------------------------------------------------------------------------------------------------------------------------
package InterFace;
/**
* 廚藝的接口
* @author douer
*
*/
public interface Cooking {
void fry();//炒菜
}
舉例:一個會唱歌的廚子是一個老師