1.
实际操作了一下,发现确实 super基类构造法只能在子类构造法前面。放在后面会报错。
2.
如果父类的构造方法调用了子类的方法或使用了子类的属性,那么在父类构造方法执行时,子类可能还没有被完全初始化,这将导致运行时错误。因此,不能反过来调用父类的构造方法。必须在子类的构造方法中先调用父类的构造方法,以确保父类的属性被正确初始化,然后再初始化子类的属性。
3.
public class M1 { public static void main(String[] args) { // TODO Auto-generated method stub Children c=new Children(); } } class Parent { public Parent() { System.out.println("父类方法!!!"); } public Parent(String s) { System.out.println(s); } } class Children extends Parent { public Children() { super("调用父类方法!!!"); //System.out.println(""); System.out.println("孩子方法!!!"); } }
4.
5.
6.
Fruit类覆盖了Object类的toString方法。
结论: 在“+”运算中,当任何一个对象与一个String对象,连接时,会隐式地调用其toString()方法,默认情况下,此方法返回“类名 @ + hashCode”。为了返回有意义的信息,子类可以重写toString()方法。
7.请自行编写代码测试以下特性(动手动脑): 在子类中,若要调用父类中被覆盖的方法,可以使用super关键字。
package practice;
public class UseSuperInherits
{
public static void main(String[] args)
{
Child c=new Child();
c.printValue();
}
}
class Parent
{
public int value=100;
public void printValue()
{
System.out.println("parent.value="+value);
}
}
class Child extends Parent
{
public int value=200;
public void printValue()
{
System.out.println("child.value="+value);
super.printValue();
}
}
运行结果:
8.
public class TestInstanceof { public static void main(String[] args) { //声明hello时使用Object类,则hello的编译类型是Object,Object是所有类的父类 //但hello变量的实际类型是String Object hello = "Hello"; //String是Object类的子类,所以返回true。 System.out.println("字符串是否是Object类的实例:" + (hello instanceof Object)); //返回true。 System.out.println("字符串是否是String类的实例:" + (hello instanceof String)); //返回false。 System.out.println("字符串是否是Math类的实例:" + (hello instanceof Math)); //String实现了Comparable接口,所以返回true。 System.out.println("字符串是否是Comparable接口的实例:" + (hello instanceof Comparable)); String a = "Hello"; //String类既不是Math类,也不是Math类的父类,所以下面代码编译无法通过 //System.out.println("字符串是否是Math类的实例:" + (a instanceof Math)); } }
9.
d=m,d=c运行时将会报错。因为m是父类对象,d是子类对象。将父类对象转化成子类对象,必须进行强制转换。而d和c是两个互不相干的类对象,所以不能将d赋值给c.
10.
程序被写死了,无法更改数据
11.
11.多态编程有两种主要形式:
(1)继承多态:示例程序使用的方法
(2)接口多态:使用接口代替抽象基类,这个任务留为作业。
现在我们可以回答前面提出的问题了:为什么要用多态?它有什么好处?
使用多态最大的好处是: 当你要修改程序并扩充系统时,你需要修改的地方较少,对其它部分代码的影响较小!千万不要小看这两个“较”字!程序规模越大,其优势就越突出
标签:03,String,子类,动脑,System,动手,println,父类,public From: https://www.cnblogs.com/azure011328/p/17764113.html