JavaSE8基础 多态 子类没有重写 父类引用调用父类中的方法

os :windows7 x64
    jdk:jdk-8u131-windows-x64
    ide:Eclipse Oxygen Release (4.7.0)
    
    
代码:

class Father {
	public int num = 1;

	public void sayHello() {
		System.out.println("hello");
	}

	public static void staticFun() {
		System.out.println("static father");
	}
}

//Son继承了Father
class Son extends Father{
	public int num = 1000;//子类中的成员和父类中重名了!

	//子类特有的方法
	public void onlySon() {

	}

	//子类中出现了与父类名字相同的静态方法
	public static void staticFun() {
		System.out.println("static son");
	}
}

class Demo {
	public static void main(String[] agrs) {

		//父类引用  指的是 子类的一个对象。
		Father f = new Son();
		System.out.println(f.num);//父类中的num
		f.sayHello();             //子类中没有sayHello()的话,会访问父类中的sayHello()。
								  //如果父类中也没有sayHello()的话,...是不会通过编译的。

		f.staticFun();            //父类中的静态方法
		//f.onlySon();如果这样是会提示编译错误的,因为编译的时候会检查Father中有没有onlySon()方法
	}
}

结果:



Java优秀,值得学习。
学习资源:itcast视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。
如果您觉得博文有可以改进的地方,留言即可。

时间: 2024-10-12 04:07:20

JavaSE8基础 多态 子类没有重写 父类引用调用父类中的方法的相关文章

JavaSE8基础 多态 子类重写了父类的普通方法 父类引用调用子类中重写的方法

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: class Father { public int num = 1; public void sayHello() { System.out.println("hello"); } public static void staticFun() { System.out.println("s

java基础 静态 static 问在多态中,子类静态方法覆盖父类静态方法时,父类引用调用的是哪个方法?

多态 package com.swift.jiekou; public class Jicheng_Tuotai_jingtai_diaoyong { public static void main(String[] args) { Fu f=new Zi(); f.show(); } } class Fu{ static int x=1; public static void show() { System.out.println("父类的方法"+x); } } class Zi e

JavaSE8基础 多态 创建子类对象的时候,先对初始化父类

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: class TestFather { public TestFather() { System.out.println("TestFather"); } } class TestSon { public TestSon() { System.out.println("TestSon&quo

JavaSE8基础 多态 强制转换 父引用转成子引用

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: class Father { } //Son继承了Father class Son extends Father{ //子类特有的方法 public void onlySon() { System.out.println("Son类特有的方法"); } } class Demo { public s

JavaSE8基础 子类必须重写所继承的抽象类中所有抽象方法

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: //抽象类中可以有 普通的成员方法 abstract class Person { //非抽象方法 public void sayHello(){ } //抽象方法 public abstract void study(); public abstract void play(); } class Javae

<请教大神,关于父类引用调用子类对象的问题>

源码: class Program{ public static void main(String[] args){ B b = new B(); } } class A { public A(){ PrintFileds(); } public void PrintFileds(){} } class B extends  A{ int x = 1; int y; public B(){ y=-1; } public void PrintFileds(){ System.out.print("

Java基础系列 - 子类继承父类,调用父类的构造函数

package com.test7; public class test7 { public static void main(String[] args) { Son son = new Son(1000, "张三"); /** * 打印显示 Father的构造函数1000 张三 Son的构造函数1000 张三 */ } } class Father { private int userId; private String userName; public Father(int us

JavaSE8基础 多态扩展性 父类引用作为函数参数,调用所装子类对象的重写方法

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: class Person { public void sayHello() { System.out.println("hello person"); } } class Javaer extends Person{ public void sayHello() { System.out.print

JavaSE8基础 extends 子类继承父类 简单示例

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0) 代码: /* * 多个类中存在相同的属性和行为时, * 这些重复的属性和行为,就可以归纳到一个单独的类中. * 这个单独的类是 父类.基类.超类. */ //基类 class Person { public void sayHello() { System.out.println("hello world"); } pu