本篇文章给大家带来了关于java的相关知识,其中主要整理了接口与抽象类的相关问题,当需要从几个类中派生出一个类,继承他们所有的属性和方法,JAVA没有多重继承需要用接口实现,下面一起来看一下,希望对大家有帮助。
推荐学习:《java视频教程》
public class UsbTest { public static void main(String[] args) { Computer com =new Computer(); Flash flash=new Flash(); com.transferData(flash); // USB usb =new Flash() com.transferData(new Printer()); /* * U盘开始工作 * 传输数据 * U盘结束工作 * 打印机开始工作 * 传输数据 * 打印机结束工作 * * */ }}class Computer{ public void transferData(USB usb){ usb.start(); System.out.println("传输数据"); usb.stop(); }}interface USB{ void start(); void stop();}class Flash implements USB{ @Override public void start() { System.out.println("U盘开始工作"); } @Override public void stop() { System.out.println("U盘结束工作"); }}class Printer implements USB{ @Override public void start() { System.out.println("打印机开始工作"); } @Override public void stop() { System.out.println("打印机结束工作"); }}
public class JDK8Test { public static void main(String[] args) { SubClass sub =new SubClass(); CompareA.methods1(); sub.methods2(); /* * Compare 北京 * Compare 上海 */ }}class SubClass implements CompareA{}interface CompareA{ public static void methods1() { System.out.println("Compare 北京"); } public default void methods2() { System.out.println("Compare 上海"); }}
public class NetWorkTest { public static void main(String[] args) { Server server=new Server(); ProxyServer proxyServer=new ProxyServer(server); // 放的是被代理对象进去 proxyServer.browse(); // 调用的是代理对象,但结果是真实对象的方法被调用 /* * 检查工作 * 真实服务器访问网络 */ }}interface NetWork{ void browse();}// 被代理类class Server implements NetWork{ @Override public void browse() { System.out.println("真实服务器访问网络"); }}// 代理类class ProxyServer implements NetWork{ private NetWork work; public ProxyServer(NetWork work){ this.work=work; } public void check(){ System.out.println("检查工作"); } @Override public void browse() { check(); work.browse(); }}
public class InnerClassTest { public static void main(String[] args) { // 实例化Dog,静态类 Pseson.Dog dog=new Pseson.Dog(); dog.eat(); // 吃骨头 // 实例化Cat,非静态类 Pseson p1 =new Pseson(); Pseson.Cat cat=p1.new Cat(); cat.eat(); // 猫吃鱼 }}class Pseson{ String name; int age; public void eat(){ System.out.println("吃饭"); } static class Dog{ String name; int age; public void eat(){ System.out.println("吃骨头"); } } class Cat{ public void eat(){ System.out.println("猫吃鱼"); } }}
public class InnerClassTest { public static void main(String[] args) { // 实例化Cat,非静态类 Pseson p1 =new Pseson(); Pseson.Cat cat=p1.new Cat(); cat.eat(); cat.display("小花"); /* * 小花 * 波斯猫 * 人 */ }}class Pseson{ String name="人"; int age; public void eat(){ System.out.println("吃饭"); } static class Dog{ String name; int age; public void eat(){ System.out.println("吃骨头"); } } class Cat{ String name="波斯猫"; public void eat(){ System.out.println("猫吃鱼"); } public void display(String name){ System.out.println(name); // 方法中name System.out.println(this.name); // 内部类中name System.out.println(Pseson.this.name); // 外部类中name } }}
推荐学习:《java视频教程》
以上是JAVA接口与抽象类详细解析的详细内容。更多信息请关注PHP中文网其他相关文章!