java⽅法之间的调⽤以及关系
第⼀题:
定义⼀个接⼝Animal,包含:
1.抽象⽅法: run()
2.默认⽅法: breathe(),输出"动物会呼吸",同时调⽤静态⽅法 eat(),私有⽅法: sleep()
3.静态⽅法: eat(),输出"动物都要吃东西"
4.私有⽅法: sleep(),输出"动物都要休息"
定义Dog类实现Animal接⼝,实现抽象⽅法run(),输出"狗跑得飞快"
在测试类中创建Dog类的对象d,通过对象调⽤run()⽅法和breathe()⽅法,打印出如下效果:
狗跑得飞快
动物会呼吸
动物都要吃东西
动物都要休息
Dog类:
public class Dog implements  Animal{
@Override
public void run() {
System.out.println("狗跑的飞快");
}
@Override
public void breathe() {
System.out.println("动物会呼吸");
}
public void sleep() {
System.out.println("动物都要休息");
}
}
Animal 类:
public interface Animal {
public abstract void run();
public  void breathe();
static void eat(){
System.out.println("动物都要吃东西");
}
static void sleep(){
System.out.println("动物都要休息");
}
}
主⽅法:
public class Demo01{
public static void main(String[] args) {
Animal d=new Dog();
d.run();
d.breathe();
Animal.eat();
Animal.sleep();
}
}
第⼆题:
定义⼀个接⼝Phone,包含:
1.抽象⽅法: playGame()
2.默认⽅法: sendMessage(),输出"发短信"
3.静态⽅法: call(),输出"打电话"
定义IPhone类实现Phone接⼝,实现抽象⽅法playGame(),输出"打王者农药,吃鸡"
重写默认⽅法sendMessage(),输出"发彩信"
在测试类中,编写代码,打印出如下语句(每句话都需调⽤上述⽅法打印):
打电话
打王者农药,吃鸡
发彩信
Phone类:
public interface Phone {
public abstract void playGame();
public default void sendMessage(){
System.out.println("发短信");
}
public static void call(){
System.out.println("打电话");
}
}
IPhone类:
public class IPhone implements Phone{
@Override
public void playGame() {
System.out.println("约和她皆失,你知道王者农药什么英雄吗?");    }
@Override
public void sendMessage() {
System.out.println("发彩信");
}
}
主⽅法:
public class Demo02 {
public static void main(String[] args) {
IPhone p = new IPhone();
Phone.call();
p.playGame();
p.sendMessage();
}
}
第三题:
定义⼀个接⼝Animal,包含:
1.抽象⽅法:run()
2.默认⽅法: sleep(),输出"动物会休息"
定义⼀个Dog类,实现Animal接⼝,
实现抽象⽅法:run(),输出"如脱缰的野狗⼀样奔跑"
定义⾃⼰特有的⽅法: eat(),输出"狗"
定义⼀个Cat类,实现Animal接⼝,
实现抽象⽅法:run(),输出"奔跑的猫⽑都被撸秃了"
定义⾃⼰特有的⽅法: catchMouse(),输出"猫抓⽼⿏"
在测试类中定义如下⽅法:
public static void printAnimal(Animal a){}
要求在⽅法中编写代码实现如下功能:
在主⽅法中:
1. Animal b = new Dog();
调⽤⽅法printAnimal()传⼊b对象,能在控制台输出:
如脱缰的野狗⼀样奔跑
动物会休息
1. Animal c = new Cat();
调⽤⽅法printAnimal()传⼊c对象,能在控制台输出:
奔跑的猫⽑都被撸秃了
动物会休息
猫抓⽼⿏
Animal类:
public interface Animal {
public static void sleep(){
System.out.println("动物会休息");
}
public abstract void run();
}
Dog类:
public class Dog implements Animal{
@Override
public void run() {
System.out.println("如脱缰的野狗⼀样奔跑");
}
public static void eat(){
System.out.println("怎么对⼩动物哪麽不好呢,编辑!");
}
}
Cat类:
public class Cat implements Animal{
@Override
public void run() {
System.out.println("奔跑的猫⽑都被撸秃了?瞧你能追的上似的");
}
public static void catchMouse(){
System.out.println("猫抓⽼⿏,天经地义");
}
}
主⽅法:
public class Demo03{
public static void printAnimal(Animal a){
}
public static void main(String[] args) {
Animal b = new Dog();
printAnimal(b);
b.run();
Animal.sleep();
Dog.eat();
Animal c = new Cat();
c.run();
Animal.sleep();
Cat.catchMouse();
}
}
第四题:
根据要求完成以下功能:
①定义接⼝Bluetooth,要求如下:
定义抽象⽅法: void btFunction()
定义默认⽅法: void connecting(),要求:输出"可以连接WIFI"
②定义抽象类Phone,要求如下:
包含空参、满参构造和以下成员变量
名称name( String 型)
⽣成所有成员变量set/get⽅法
定义抽象⽅法:void playMusic(Song song)
③定义类Song
包含空参、满参构造和以下成员变量
歌⼿ singer(String 型)
歌名 name( String 型)
⽣成所有成员变量set/get⽅法
④定义类IPhone,要求如下:
继承抽象类 Phone,实现接⼝ Bluetooth
构造⽅法包括:空参构造和满参构造⽅法(String)
重写抽象⽅法:
void btFunction(),要求:输出"⽀持WIFI功能"
void playMusic(Song song),要求:输出打印"XXX⼿机正在播放YYY唱的ZZZ"
PS:XXX是Phone类中的 name属性值,YYY是Song 类中的 singer属性值,ZZZ是Song 类中的 name属性值
⑤定义测试类Test,在main⽅法实现以下功能:
创建并初始化⼀个IPhone 对象phone和⼀个Song 对象s,调⽤phone的 btFunction()、connecting()和playMusic(Song song)⽅法,打印如下:⽀持WIFI功能
可以连接WIFI
华为⼿机正在播放周杰伦唱的菊花残
Bluetooth 类:
public interface Bluetooth {
public static void btFunction() {
}
public static void connecting(){
System.out.println("可以连接WIFI,谁能把WIFI变为只能⾃⼰连");
}
}
Phone类:
public abstract class Phone{
String name="华为";
public Phone(String name) {
this.name = name;
}
public Phone() {
}
public abstract void playMusic(Song song);
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public abstract void playMusic();
}
Song 类:
public class Song extends Phone{
String singer="周杰伦";
String name="菊花残";
public Song(String singer, String name) {
this.singer = singer;
this.name = name;
}
public Song() {
}
@Override
public void playMusic(Song song) {
Song s=new Song();
s.setName("菊花残");
s.setSinger("周杰伦");
}
public String getSinger() {
return singer;
}
java接口有没有构造方法
public void setSinger(String singer) {
this.singer = singer;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void playMusic() {
System.out.println(name+"⼿机正在播放"+getSinger()+"唱的"+getName());    }
}
IPhone 类:
public class IPhone extends Phone implements  Bluetooth{
Song s=new Song();
public IPhone(String name) {
this.name=name;
}
public IPhonww() {
}
@Override
public void playMusic(Song song) {
System.out.println(name+"⼿机正在播放"+s.getSinger()+"唱的"+s.getName());
}
@Override
public void playMusic() {
System.out.println(name+"⼿机正在播放"+s.getSinger()+"唱的"+s.getName());
}
public static void btFunction() {
System.out.println("⽀持WIFI功能");
}
}
主⽅法:
public class Demo04 {
public static void main(String[] args) {
IPhone phone=new IPhone();
phone.btFunction();
phone.playMusic();
}
}
第五题:
根据要求完成以下功能:
①定义接⼝Study,要求如下:
定义抽象⽅法: void studyLine(Line line)
定义默认⽅法: void info(),要求:依次调⽤stu1(),stu2()
定义私有⽅法: void stu1 (),要求:输出"好好练习,天天向上"
void stu2 (),要求:输出"镜头拍烂,⽉薪百万"
②定义类Line,包含空参、满参构造和以下成员变量
基础班学习 basicClass(String 型)
就业班学习 emplymentClass(String 型)
⽣成所有成员变量set/get⽅法
定义成员⽅法:void printLine(),要求:输出"练习路线,基础班学习:xxx,就业班学习:yyy",
PS: xxx为变量basicClass值,yyy为变量emplymentClass值
③定义类Student,包含空参、满参构造和以下成员变量
姓名 name(String 型)
年龄 age(int型)
⽣成所有成员变量set/get⽅法
定义成员⽅法:void studying(Study sy),要求:输出“xxxx练习中”,然后在⽅法内依次调⽤info(),stu
dyLine (Line line) PS:xxx为变量name值,参数line需要⾃⾏创建并初始化变量basicClass与 emplymentClass
④定义测试类Test,在main⽅法实现以下功能:
创建并初始化⼀个Student对象stu,调⽤⽅法 studying(Study sy)
sy为Study的实现类,需要实现studyLine (Line line)抽象⽅法,实现要求:调⽤参数line的printLine()⽅法;
⽰例如下:
苍井空练习中
好好练习,天天向上
镜头拍烂,⽉薪百万
学习路线,基础班学习:JAVASE,就业班学习:JAVAEE
Line 类:
public class Lirt {
static String basicClass="JAVASE";
static String emplymentClass="JAVAEE";
public Line(String basicClass, String emplymentClass) {
this.basicClass = basicClass;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。