❶ java重用和继承的区别
继承是重用的一种方式。重用最常见的两种方式是组合和继承。
组合通常使用在需要既有类的特性,而不是它的接口的时候。这个时候在新类中使用既有类来帮助你实现新的功能,新类的使用者看到的是新类的接口而不是既有类的接口,而且你还可以使用private来对重用的类进行隐藏。如在新类中定义List<String> list =new ArrayList<>();
继承则通常是在你需要既有类的接口,但是需要对这些进口的实现定义特殊的版本(即重写父类方法)。
❷ java 为什么说多用组合,少用继承
java组合我没听收过,但是继承通常都会和实现放在一起说:
在java中,通常一个类只能继承一个类,但一个类却可以实现多个接口,所以采用实现的方式写代码会更加灵活
❸ JAVA中什么是继承
继承在本职上是特殊一般的关系,即常说的is-a关系。子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的 一些属性或方法。
1.Java继承的语法格式:
Java继承的关键字是:extends
public class 子类名 extends 父类名{...}
如: public class UNStudent extends Student {...} 注:1.子类又称超类,拓展类 ;父类又称基类。
2.Java中类的继承只能是单继承(单根继承),即一个类只能继承一个父类,但是一个类可以由多个类来继承它。
3.Java会给每一个没有设置父类的类,自动添加一个父类就是Object 。
(3)java组合和继承扩展阅读:
一、子类继承父类的结果
1.子类继承父类后,继承到了父类所有的属性和方法。注:是所有。
2.子类可调用的方法也要看情况而定:
子类和父类在同一个包下时 “子类和子类的对象”可以调用父类的默认的,受保护的,公有的属性以及方法。
子类和父类在不同的包下时,在子类中可以调用受保护的,公有的属性以及方法,而子类的对象可以调用受保护的,公有的属性以及方法。
二、方法的重写
1.当子类和父类都有某种方法,而子类的方法更加要求细致,或者实现功能不同,就需要方法的重写。
2.重写条件
①必须要存在继承关系;只有继承之间的关系才能有方法的重写
②方法的返回值类型,方法名,参数个数,参数类型,参数顺序,必须要完全一致;
如:父类中方法 public void play (int n ; String s){方法体1...}
重写后的子类方法public void play(int n ; String s){方法体2...}
3.子类重写方法时的访问修饰符可以大于或者等于父类方法的访问修饰符。
4.重写后的方法会被优先调用。
三、自动转型
自动转型的实现要求有继承关系
格式如下:父类名 对象名 = new 子类构造方法;
如:Student stu = new UNStudent;
而强制转型格式如下:子类名 对象名 = (子类名)父类对象名
如:UNStudent un = (Student)stu;
自动转型可以拓宽方法的作用访问域
在使用自动转型后,子类自己定义的方法是不能在自动转型后执行;
原因是因为Java的编译机制,它会优先判断父类中是否存在该方法,如果存在则通过编译,如果不存在则报错。
第二种自动转型:转型后只需要不同类的不同对象调用想吐的方法,很方便!
/**访问修饰符 返回值数据类型 方法名(父类类型 参数名,...){
调用方法。
}
父类名 对象名 = new 子类名;
子类名 对象名 = new 子类名;
方法名(对象名);
*/
比如拿到驾驶证为A2的人,可以驾驶重型货车,当然也可以驾驶大型货车,中型货车,小型货车,小客车,小轿车,摩托车... 可以选择第二种自动转型的方法,便于调用同一个方法。
自动转型好处:1.减少冗余代码;2.在方法设置参数时,扩大访问范围。
四、多态
多态是由方法重载,继承,方法重写,自动转型等技术的组合。
五、为什么需要继承?
1.提高代码的重用性。
2.提高程序的扩展性。
JAVA继承总结
❹ Java编程:组合,继承和代理的区别
组合的话,是在类中new一个对象,然后就只能调用这个对象的方法了,是死的
而你用代理的话,代理不仅要new那个对象,还要把你想调用这个对象的方法也写出来,方法实现是通过这个new的对象来实现的,当然你也可以在方法中添加你自己想实现的功能,这样做又有了继承中重写的感觉,所以说代理是继承和组合的中庸之道,lz可以看看thinking in java7.3章 7.4章 还有网页链接这篇博客,写的很详细
❺ Java中类的组合和继承 请详细叙述这两种方法
组合类意思是
public class A {
}
public class B{
private A a; //拿A做有元变量
}
继承是指:
public class A {
public void ddd(){
}
}
public class B extends A {
//它就能通过super.ddd()来拿父类A的方法
}
❻ java中继承的好处是什么,在组合和继承中该如何取舍
1,继承提高了代码的重复利用性;
2,继承是面向对象的,一类事物可以独立存在,解藕了类与类之间的斗联系。
3,继承更利于程序的设计。
5,在组合中,一定要把同一类事物放在一起,和现实生活中一样,每一类事物都是有自己的共性和自己的特性,按毛主席的矛盾论说是:矛盾的普遍性与特殊性,普遍性就是继承来的。
6,在写代码之前,分析和设计是关键的一步,这一步解决的就是哪些类是同类的,哪些东西是公共的。
❼ java 什么是继承什么是异常简述Java的异常处理机制。
面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
通过继承创建的新类称为“子类”或“派生类”。
被继承的类称为“基类”、“父类”或“超类”。
继承的过程,就是从一般到特殊的过程。
要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。
在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。
继承概念的实现方式有三类:实现继承、接口继承和可视继承。
�0�1 实现继承是指使用基类的属性和方法而无需额外编码的能力;
�0�1 接口继承是指仅使用属性和方法的名称、但是子类必须提供实现的能力;
�0�1 可视继承是指子窗体(类)使用基窗体(类)的外观和实现代码的能力。
在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承 Person 类。但是 Leg 类却不能继承 Person 类,因为腿并不是一个人。
抽象类仅定义将由子类创建的一般属性和方法,创建抽象类时,请使用关键字 Interface 而不是 Class。
OO开发范式大致为:划分对象→抽象类→将类组织成为层次化结构(继承和合成) →用类与实例进行设计和实现几个阶段。
❽ JAVA组合和继承的区别
你定义了一个A类,所以你这样写:private A a;只是定义了一个关于A类的一个变量a,但是它是空的,所以你下面的a.method();肯定会报空指针异常(NullPointException),想可以用的话,你必须创建个对象,像你上面,就应该用A a = new A();
具体代码:
class A{
int year=2008;
public void method(){
System.out.println("a.method");
}
}
public class B{
private A a;
public static void main(String args[]){
B y=new B();
y.method1();
}
public void method1(){
a = new A();//注意这里
System.out.println("b.method");
a.method();
}
}
打印结果为:
b.method
a.method
❾ java中的继承关系
A答案本身就是有错的,interface是定义接口,下边就不能用extends,而应该用implements
B答案的作用是:son这个类继承了Father这个类,就体现了继承关系
C答案是先定义了一个抽象类:Colorable,下边Shape这个类继承了Colorable这个类。抽象类是可以被继承的。也体现了继承关系
D答案只是把Species的一个引用作为了Animal类的一个属性。没有体现继承。而且跟继承一点关系也没有
E答案是Employee实现了Person接口,并会实现接口里的所有抽象方法。所以也是体现了继承的
❿ java 中的继承的 优点和缺点 主要是缺点
java 中的继承的 优点和缺点如下:
优点:1.可以使用父类的所有非私有方法;而且单继承可由接口来弥补。
2.可以继承父类中定义的成员方法以及成员变量,使得子类可以减少代码的书写。还可以重写父类的方法以增加子类的功能。
缺点:1.耦合性太大
2.就是破坏了类的封装性,其实继承一般多用于抽象方法的继承和接口的实现