① java类的继承练习(一个小程序)
这就是多态的问题啦,子类继承父类,那么将子类对象的引用赋给父类对象,
你这里就是LX3_7_p sn=new LX3_8("aa",34,"bb","cc")将子类的引用赋给了父类,那么这个引用现在能调用到子类重写过的父类的方法以及父类的方法(这里我不知道该怎么说了,就是这样父类中有print()方法,子类中也就print()方法,并且返回类弄和参数都一样的话,就是重写了父类的方法,那么这时候用sn可以调用到print()方法,但这个方法不是父类的而是子类的),
而不能调用到子类中没有重写父类的方法(这里父类方法为PIRNT(),子类方法为PRIN()),所以sn根本调用不到子类的方法prin()不报错才怪
然后你将子类中的prin()改成print()这就相当于重写了父类的方法,在用sn调用时父类的方法被告覆盖,会调用到子类的print()方法.
不是引用出错啦,只是现在这个sn调用不到子类的prin()方法,你如果用LX3_8产生一个对象调用prin()是不会出现这种问题的啦.
② java继承与多态的题目求解答
publicclassPhoneDemo{
publicstaticvoidmain(String[]args){
Phonep1=newOldPhone();
Phonep2=newNewPhone();
show(p1);
System.out.println("
----------分割线-----------
");
show(p2);
}
privatestaticvoidshow(Phonep){
p.call();
p.message();
if(pinstanceofIplay){
((Iplay)p).game();
}
}
}
classPhone{
publicvoidcall(){
System.out.println("古董---Call....");
}
publicvoidmessage(){
System.out.println("古董---message....");
}
}
interfaceIplay{
publicvoidgame();
}
classOldPhoneextendsPhone{
}
{
publicvoidcall(){
System.out.println("时尚---Call....");
}
publicvoidmessage(){
System.out.println("时尚---message....");
}
publicvoidgame(){
System.out.println("望着农药真好玩!");
}
}
③ java类的继承题目
publicclassJurassic{
publicclassAnimal{
publicvoidact(){
System.out.println("这只动物在水里洗了个澡");
}
}
{
@Override
publicvoidact(){
System.out.println("这只恐龙吃掉捕捉到的猎物之后在水里洗了个澡!");
}
}
}
④ java继承练习
这个太简单了,
需求已经说的很详细了,
只需按照要求来就可以了。
⑤ java继承多态的练习题
Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
java多态存在的三个必要条件:
1.需要有继承关系的存在
2.需要有方法的重写
3.需要有父类的引用指向子类对象
希望对你有帮助。
第一题应该选D,第二题选C,D。
第一题属于多态,methodB()方法属于子类,父类没有重写子类的方法
第二题属于继承,子类可以继承父类的方法
⑥ JAVA有关继承的练习题:
菜鸟的尝试,如果有什么错误和不妥,欢迎指出。
Public class child{
}
Public class error1 extends child(
érror1(){
}
Void testFail(){
}
}
Public class error2 extends child(
érror2(){
}
Void steals(){
}
}
Public class parents{
parents(){
}
Public static void print(child error){
If(error instanceof error1){
Print("谈心")
}
If(error instanceof error2){
Print("挨打")
}
}
Public static void main (string[] args){
Parents parent= new parents();
Error errora1 = new error1();
Error errora2 = new error2();
Parent.print(errora1);
Parent.print(errora2);
}
大概就这样了,纯手机敲出来的,很多语法不对,
但是看下思路还是看出来的。
请采纳答案,支持我一下。
⑦ 关于JAVA继承类的一道笔试题
构造函数都是先执行构造 再执行其他的.像你的class X 你去用无参构造器new一个X时,他会先调用你重写的无参构造器,如果自己没写jvm会去调用默认的,默认的无参数构造器是默认就存在的不论你写不写.执行构造函数时他会先执行你构造方法的代码,执行完成后才会去执行其他方法 去生成这个类的属性 执行静态代码块,class X中的 Y b=new Y(); 这段代码你放哪里其实只是声明了一个X的成员变量而已,放哪里执行顺序都是一样的
⑧ java子类和父类继承题
SonArr.java
public class SonArr extends FatherArr{
public SonArr(int n) {
super(n);
}
public static void main(String[] args) {
SonArr s=new SonArr(5);
s.setArr();
s.printArr();
System.out.println("数组和"+s.getSum());
System.out.println("最大值"+s.getMax());
}
int getMax(){
int max=a[0];
for(int i=1;i<a.length;i++){
if(max<a[i]){
max=a[i];
}
}
return max;
}
int getSum(){
int sum=0;
for(int i:a){
sum+=i;
}
return sum;
}
}
FatherArr.java
import java.util.Scanner;
public class FatherArr {
int n;
int[] a;
public FatherArr(int n) {
this.n=n;
a=new int[n];
}
void setArr(){
Scanner sc=new Scanner(System.in);
for(int i=0;i<n;i++){
System.out.print("输入:");
a[i]=sc.nextInt();
}
}
void printArr(){
for(int i:a){
System.out.print(i+" ");
}
}
}