接口基本+与抽象类
-
接口与抽象类:.
- 抽象类必须全部实现父类的方法,否则必须声明子类为抽象类 - 抽象类是对一类事物的高度抽象:其中既有方法也有属性 - 接口:是对一系列动作的抽象 - 当需要对一类事物抽象时候:抽象类;对动作抽象使用接口:需要使用动作的对象去实现接口
-
对象的多态:
- 用接口来接收一个对象:只能执行对应接口的方法
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();//炒菜
}
举例:一个会唱歌的厨子是一个老师