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 sayHello() {
		System.out.println("hello world");
	}

	//子类特有的方法
	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(),因为这里存在方法重写。

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

结果:

参考资料:/*视频讲解中的有价值的文字说明*/



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

时间: 2024-11-04 12:45:15

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

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基础 多态 子类没有重写 父类引用调用父类中的方法

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

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

源码: 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("

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基础 String indexOf 正向 从指定索引值开始查找 字符在字符串中第一次出现的位置

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        code: package jizuiku.t00; public class Demo4 { public static void main(String[] args) { // 索引值 0123 String str = "abc01234543210cba"; char ch = '0'; Syst

JavaSE8基础 StringBuffer与String变量在追加字符串后,引用变量的地址发生改变

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        code: package jizuiku0; public class Demo11 { public static void main(String[] args) { String str1 = "cnblog"; String str2 = str1 + "jizuiku"; S

Java基础-接口看下图实现如下接口和类,并完成Adventure中的主方法

package hanqi; public interface CanSwim { void swim(); } package hanqi; public interface CanFly { public void fly(); } package hanqi; public abstract class ActionCharacter { abstract void fight(String emp); abstract void speak(String s); } package ha

多态---父指针指向子类对象(父类引用指向子类对象)

博客登录| 开发 Swift App Store研究 产品设计 首页 >iOS开发 OC温故:类的三大特性(封装,继承,多态) iOS开发工程师 高级Cocos2d-x游戏开发工程师(培训讲师) iOS手机软件开发工程师 iOS工程师 Web后端高级开发工程师 iOS软件工程师 我们都知道,面向对象程序设计中的类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性: 一.封装 封装就是对类中的一些字段,方法进行保护,不被外界所访问到,有一种权限