正文
java多继承的代码 java实现多继承的两种方法
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
接口是否可继承接口(java)
Java语法中java多继承的代码,接口可以继承接口java多继承的代码,抽象类可以实现接口java多继承的代码,抽象类可以继承实体类。
Java语法中,使用interface定义一个接口,使用class定义一个类,使用关键字abstract+class定义一个抽象类。以下分别对这3个知识点进行解析:
1、接口可以继承接口
接口可以多继承接口,例如:Interface1ExtendsInterface2,Interface3,Interface4??
代码示例为:
publicinterfaceInterface1{
publicvoidmethod1();
}
publicinterfaceInterface2extendsInterface1{
publicvoidmethod2();
}
publicinterfaceInterface3extendsInterface1,Interface2{
publicvoidmethod3();
}
2、抽象类可以实现接口
抽象类实现接口时,可以完全重写或覆盖接口中java多继承的代码的方法,也可只重写接口中的部分方法。
代码示例为:
publicinterfaceInterfaceA{
publicvoidmethod1();
publicvoidmethod2();
publicvoidmethod3();
}
abstractclassClassAimplementsInterfaceA{
publicvoidmethod1(){}
publicvoidmethod2(){}
}
3、抽象类可以继承实体类
抽象类可以继承实体类,但前提是实体类必须有明确的构造函数。
代码示例为:
classEntityA{
publicEntityA(){
//构造函数
}
publicvoidhelloWorld(){
System.out.println("hello");
}
}
abstractclassClassAextendsEntityA{}
扩展资料:
1、Java继承或实现接口时需要遵循的原则:
(1)类优先于接口。如果一个子类继承的父类和接口有相同的方法实现。那么子类继承父类的方法。
(2)子类型中的方法优先于父类型中的方法。
(3)如果以上条件都不满足,则必须显示覆盖/实现其方法,或者声明成abstract。
2、Java实现多继承的方式:
(1)Java中一个类不能继承多个具体class。
(2)一个类只可继承自一个具体class,但可实现多个接口。interface不涉及到实现细节,不与任何存储空间有关连。新类可继承自一个具象class,其余继承都得是interfaces。
(3)outerclass不可继承自多个具体class,可在其内部设多个innerclass,每个innerclass都能各自继承某一实现类。innerclass不受限于outerclass是否已经继承自某一实现类。
(4)innerclass可以说是多重继承问题的完整解决方案。一个类不能继承自多个一般类。但java多继承的代码我们可以让其内部的多个innerclass各自继承某一实现类达到类似的目的。
参考资料来源:Java官方文档-接口(interface)
java中,通过什么方法实现多重继承
继承是面向对象编程的一种特性,是保留原有类功能的前提下拓展或改写部分功能,实现代码复用的方式,
单继承就是一个类只可以继承自一个父类,多继承是指一个类可以同时继承多个父类
java中使用的是单继承,也就是一个类有且只能有一个父类,java中可以使用接口实现来实现类似多继承的效果
使用内部类让Java实现“多继承”
使用内部类让Java实现 多继承
众所周知 Java没有像c++那样支持多继承 但是我们可以使用接口或内部类来模拟实现多继承
我们使用内部类来实现一个继承自消费者 又继承自生产者的派生类
实际上Java之所以设计出内部类这个概念 一方面是为了更好的封装性 另一方面就是借助内部类模拟实现多继承
首先我们定义一个消费者抽象基类
view plainprint?
/** * Consumer Class *@author androidyue *Last Modified 上午 */ public abstract class Consumer { protected float buyPrice protected abstract void buyGoods() }
以下是生产者抽象基类
view plainprint?
/** * Producer Class *@author androidyue *Last Modified 上午 */ public abstract class Producer { protected float cost protected abstract void produce() }
使用内部类实现 多继承 的派生子类
view plainprint?
/** *Java实现 多继承
*@author androidyue *Last Modified 上午 */ public class InnerClassDemo extends Producer { private ConsumerBuyer buyer
public void desribeMySelf(){ System out println( 使用Java模拟多继承 ) this produce() this buyer=new ConsumerBuyer() this buyer buyGoods()
}
@Override protected void produce() { st= f System out println( 我是生产者 我以每件 +st+ RMB的成本生产一件产品 然后以 元价格对外出售 ) }
class ConsumerBuyer extends Consumer{
@Override protected void buyGoods() { this buyPrice= f System out println( 我是消费者 我以 +this buyPrice+ RMB 买了一件售价 元的商品 不信吧 因为我也是生产者!^_^ )
}
}
}
在程序入口调用
view plainprint?
/** * the entrance of application *@author androidyue *Last Modified 上午 */ public class AppMain { public static void main(String[] args){ InnerClassDemo demo=new InnerClassDemo() demo desribeMySelf() }
lishixinzhi/Article/program/Java/hx/201311/25912
java 如果一个类继承两个类,方法名怎么写?
/java只能单继承java多继承的代码,希望同时继承多个类的话可以考虑implements.比如说java多继承的代码:
class A extends B implements C, D
{
// ...
}
java不允许多继承java多继承的代码,但允许implement 多个接口,事实上,接口也可以说是一个类,只不过,里面有很多没有实现的方法,需要java多继承的代码你在子类中实现。
java中如何继承多个父类,如何实现多个接口?
java中没有多继承(就是不能继承多个父类),只有多重继承。。比如:\x0d\x0aclass A{\x0d\x0a}\x0d\x0a\x0d\x0aclass B extends A{\x0d\x0a}\x0d\x0a\x0d\x0aclass C extends B {\x0d\x0a}\x0d\x0a可以实现多个接口,比如:\x0d\x0ainterface A{\x0d\x0a}\x0d\x0a\x0d\x0ainterface B{\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0aclass C implements A, B\x0d\x0a{\x0d\x0a}
什么是继承,试说明在java中实现多继承的方法
JAVA里没有多继承java多继承的代码,一个类之能有一个父类。
而继承的表现就是多态。一个父类可以有多个子类java多继承的代码,而在子类里可以重写父类的方法(例如方法print()),这样每个子类里重写的代码不一样,自然表现形式就不一样。这样用父类的变量去引用不同的子类,在调用这个相同的方法print()的时候得到的结果和表现形式就不一样了,这就是多态,相同的消息(也就是调用相同的方法)会有不同的结果。举例说明java多继承的代码:
//父类
public class Father{
//父类有一个打孩子方法
public void hitChild(){}
}
//子类1
public class Son1 extends Father{
//重写父类打孩子方法
public void hitChild(){
System.out.println("为什么打我?我做错什么了java多继承的代码!"); }
}
//子类2
public class Son2 extends Father{
//重写父类打孩子方法 public void hitChild(){
System.out.println("我知道错了,别打了!"); }
}
//子类3
public class Son3 extends Father{
//重写父类打孩子方法 public void hitChild(){
System.out.println("我跑,你打不着!"); }
}
//测试类
public class Test{
public static void main(String args[]){
Father father;
father = new Son1();
father.hitChild();
father = new Son2();
father.hitChild();
father = new Son3();
father.hitChild();
}
}
都调用了相同的方法,出现了不同的结果!这就是多态的表现!
2.JAVA中没有多继承,而用接口实现了多继承!一个类或是可以同时实现多个接口!(就相当于C++里一个类同时继承了多个类!)例如:
public class Son implements Father1,Father2,Father3{
}
接口有利于代码功能的扩展(增加新的功能)!而继承则有利于代码功能的修改(把旧的功能改成新的功能)!这里旧功能的修改和新功能的增加前提是不修改旧的功能,旧的功能仍然可以使用!旧类的代码也不做修改!
接着上面的继承举例:上面例子中的子类我们统称为一代子类
1.用继承修改旧的功能。
现在如果一代Son1的功能打孩子,也就是方法hitChild()里边的功能实现有问题,我们要把具体实现修改掉,那么我们可以重新写一个新的二代子类Son11继承自一代子类Son1,并重写其hitChild()方法。
//二代子类
public class Son11 extends Son1{
//重写父类打孩子方法
public void hitChild(){ System.out.println("我是二代子类对此方法的新实现");
}
}
2.用接口实现增加新的功能。
现在类Son1已经有了‘打孩子’功能(也就是方法),而我们有了新的需求,我们需要它还要有一个新的功能‘宠孩子’(新方法pet();)。而旧的代码不能动!那么我们可以定义一个新的接口(PetInterFace),接口里定义这个方法pet()的声明。再重新写一个二代子类Son11,让它先继承类Son1,同时实现接口 PetInterFace!并实现接口里的 pet()方法!
//新接口
public interface PetInterFace{
//新功能方法 public void pet();
}
//二代子类
public class Son11 extends Son1 implements PetInterFace{
//实现接口方法
public void pet(){
System.out.println("父亲很爱我!");
}
}
这样这个二代子类即有了老的方法,又有新的功能!
java多继承的代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java实现多继承的两种方法、java多继承的代码的信息别忘了在本站进行查找喔。