继承多态和接口多态

 

继承多态和接口多态

继承多态和接口多态基本一致,不同的是类的继承是使用继承关系实现多态,而接口多态是使用实现的方式实现的

 

 

接口多态

package 接口;

interface Preson{

public  void teachLession();

public void sleep();

 

}

class JavaTeacher implements Preson{

//实现第一种多态

String name;

int age;

public JavaTeacher(String name) {

注意构造函数是不用返回值void int String 的

Public void JavaTeacher (String name){

This.name=name;
}这是错的

this.name=name;

}

public void teachLession() {

System.out.println(name+"老师正在讲多态");

}

public void smoking() {

System.out. println("正在抽烟");

}

public void sleep() {

System.out.println(name+"正在睡觉");

}

}

 

 

 

 class PHPTeacher implements Preson{

//实现 第二种多态

 String name;

int age;

public  PHPTeacher(String name) {

this.name=name;

}

public void teachLession() {

 

System.out.println(name+"老师在讲PHP");

}

public void sleep() {

System.out.println(name+"老师正在睡觉");

}

}

 

 

 class Leader{

 public void checkTeacher(Preson t) {

String preson="";

//instanceof可以判断我们的多态的引用变量到底是什么类型

if(t instanceof JavaTeacher ) {

preson="Java老师";

}

else if(t instanceof PHPTeacher ) {

preson ="PHP老师";

}

System.out.println("开始考察"+preson);

t.teachLession();

System.out.println("考察结束");

 }

 }

public class 接口 {

public static void main(String [] args) {

Preson j=new JavaTeacher("张三");

 

j.sleep();

j.teachLession();

//注意

//j.smoking();子类中特有的方法不能用父类来调用

//但是可以用子类来的调用

JavaTeacher d=new JavaTeacher("张三");

d.smoking();

PHPTeacher p=new PHPTeacher("李希");

 

p.sleep();

p.teachLession();

Leader leader=new Leader();

leader.checkTeacher(j);

}

}

 

 

 

 

继承多态

package 接口;

abstract class Preson{

String name;

int age;

public abstract void teachLession();

public void sleep() {

System.out.println("正在睡觉");

}

}

class JavaTeacher extends Preson{

//实现第一种多态

public void teachLession() {

System.out.println(name+"老师正在讲多态");

}

public void smoking() {

System.out. println("正在抽烟");

}

}

 class PHPTeacher extends Preson{

//实现 第二种多态

public void teachLession() {

 

System.out.println(name+"老师在讲PHP");

}

public void sleep() {

System.out.println("老师正在睡觉");

}

}

 

 

public class 接口 {

public static void main(String [] args) {

Preson j=new JavaTeacher();

j.name="张三";

j.age=21;

j.sleep();

j.teachLession();

注意

//j.smoking();子类中特有的方法不能用父类来调用

//但是可以用子类来的调用

JavaTeacher d=new JavaTeacher();

d.smoking();

PHPTeacher p=new PHPTeacher();

p.name="李希";

p.age=21;

p.sleep();

p.teachLession();

 

}

}

 

正在睡觉

张三老师正在讲多态

正在抽烟

老师正在睡觉

李希老师在讲PHP

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值