什么是类的继承性?Java中子类和父类有什么关系?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了什么是类的继承性?Java中子类和父类有什么关系?相关的知识,希望对你有一定的参考价值。

1. 什么是类的继承性?Java中子类和父类有什么关系?
2. Java程序分为哪两种?简述它们的区别。
3. 简述4种常用布局管理器的名称及布局方式,并指出Frame和Panel的缺省布局管理器。

1. 继承,是对有着共同特性的多类事物,进行再抽象成一个类。这个类就是多类事物的父类。父类的意义在于可以抽取多类事物的共性。子类中有和父类中可访问(可继承到子类)的同名同返回类型同参数表的方法,就会覆盖从父类继承来的方法。
2.(1)standalone applications,或称为applications:可独立执行的程序
针对用户接口的不同,可分为:
a) console application
b) windows application
(2)embedded applications:嵌入式应用程序,必须依附在其它程序里执 行
a)applets:内嵌于网页并通过因特网传递,在用户端使用支持Java的浏 览器内动态地由服务器端下载并执行的小程序
b)JSP、Java Servelet:以网页的形式存在于服务器端并且通过网络下载 至支持Java的浏览器内执行
c)MIDlet:利用J2ME MIDP所开发而成,执行环境为移动电话及PDA等
d)Spotlet:利用J2ME CLDC所开发而成,执行环境为PDA等。
3.FlowLayout,流式布局管。尝试在一行中按增加顺序摆放组件,窗体大小改变时,组件位置会相应发生改变

BorderLayout,按方位进行布局管理,(North,South,East,West,Middle)不明确指定,就会默认加载在中间(Middle),每个部分只能放一个组件

GridLayout,网格布局,通过行列,间距,来用网格分割,把组件放入如网格中,先行后列摆放组件。可以保证每个组件的大小都是一样的

CardLayout,卡片布局,组件重叠放置。
GridBagLayout,组件可以跨行跨列的网格布局。

Frame的默认布局管理器borderlayout

Panel的默认布局管理就是FlowLayout。
参考技术A 1.继承,就是子类继承父类的公有方法,子类继承自父类,
2.applet和应用程序,applet要在网页中运行,而应用程序在IDE中运行
33.FlowLayout,流式布局管。尝试在一行中按增加顺序摆放组件,窗体大小改变时,组件位置会相应发生改变

BorderLayout,按方位进行布局管理,(North,South,East,West,Middle)不明确指定,就会默认加载在中间(Middle),每个部分只能放一个组件

GridLayout,网格布局,通过行列,间距,来用网格分割,把组件放入如网格中,先行后列摆放组件。可以保证每个组件的大小都是一样的

CardLayout,卡片布局,组件重叠放置。
GridBagLayout,组件可以跨行跨列的网格布局。

Frame的默认布局管理器borderlayout

Panel的默认布局管理就是FlowLayout。
参考技术B 1,不是继承性吧,应是传递性,如a继承b,b继承c,既a继承c,子类可以继承父类中的属性和方法(除私有的)。 参考技术C 自己看书去

java父类调用子类变量

package test;

import java.io.UnsupportedEncodingException;

public class TestC
public static void main(String[] args)
A a=new B();


class A
A()test();
public void test()
System.out.println("HelloWorld!");


class B extends A
int i=10;
B()super();
public void test()
System.out.println(i);


输出结果是0;
问题:这里父类引用子类对象,调用重写的test()方法,为什么父类中没有定义 i 这个变量,却可以输出结果0?

参考技术A 子类重写父类的方法只要满足几个条件,方法名相同,修饰符和返回值范围不比父类小即可。与方法体没有任何关系追问

为什么这里输出的i=0?B重写的test()中的 i 变量是怎么来的,A类中没有定义,而B类中 i 的值是10

追答

A a=new B();这里并没有去调用方法,只是在NEW 的时候执行了构造方法,i值为int型的默认值0

参考技术B 其过程是先给子类的属性,i分配存储空间,并赋默认值0,执行父类构造方法, 里面有个test(),这个方法被子类覆写了,所以实际执行的是子类的test()方法。会输出i,这时i=0,所以输出0。然后给属性i赋值10。
在给属性i赋值的前 加载了父类 然后就有了后面的0追问

问一下,i为什么=0?

追答

其过程是先给子类的属性,i分配存储空间,并赋默认值0,执行父类构造方法, 里面有个test(),这个方法被子类覆写了,所以实际执行的是子类的test()方法。会输出i,这时i=0,所以输出0。然后给属性i赋值10。
在给属性i赋值的前 加载了父类 然后就有了后面的0

本回答被提问者采纳

以上是关于什么是类的继承性?Java中子类和父类有什么关系?的主要内容,如果未能解决你的问题,请参考以下文章

java里,为啥子类不可以有 和父类 同名不同返回类型 的方法?

java子类中如何访问和修改父类成员

java之继承

java之继承

java关于子类和父类构造方法的关系,犯迷糊!!

关于C++父类与子类之间变量的问题