Java杂谈之继承与多态

来源:互联网 发布:开淘宝店的创业计划书 编辑:程序博客网 时间:2024/06/05 22:42

Java的特性包括抽象,继承,多态,封装

本片博客主要介绍Java的继承与多态的一些特性

继承注意点:

1.一个类的直接父类只能有一个

2.子类继承父类所有的属性,纵使是私有的属性也是能继承过来,能不能用另说

3.当子类与父类拥有相同的属性时,默认将父类的属性隐藏掉,并没有覆盖掉,但用的

是自己的属性

4.方法的继承,方法的覆盖(重写)

多态的注意点:

1.多态的两种表现形式:重写和重载(判断是否重载不看返回值)

2.重写--运行时多态;重载--编译时多态



以下是一个实例:

Person--父类

Student--子类

Test--测试


Person类代码:

package JavaInheritancePolymorphic;public class Person {private String name;private int age;public void sayHello(){System.out.println("你好");}public void introduce(){System.out.println("我是人类");}}

Student类代码:

package JavaInheritancePolymorphic;public class Student extends Person {private String stuNo;private int age;public void sayHello(String msg){System.out.println(msg);}public void introduce(){System.out.println("我是学生");}public void goHome(){}}

Test代码:

package JavaInheritancePolymorphic;//一个类的直接父类只能有一个//属性的继承//子类继承父类所有的属性,纵使是私有的属性也是能继承过来,能不能用另说//当子类与父类拥有相同的属性时,默认将父类的属性隐藏掉,并没有覆盖掉,但用的是自己的属性//方法的继承,方法的覆盖(重写)//多态的两种表现形式:重写和重载(重载不看返回值)//重写--运行时多态;重载--编译时多态public class Test {public static void main(String[] args) {Student stu = new Student();//编译的时候就已经知道sayHello调用的是哪一个sayHello方法stu.sayHello("Hello Java!");stu.introduce();//s是Person的引用//s的实际的对象是Student对象//s编译的时候以Person身份编译的//s运行的时候以Student身份运行的Person s = new Student();s.introduce();//虽然Studen类中有goHome()方法,却不能直接"."出来//直接写s.goHome()会出错((Student)s).goHome();System.out.println(stu);}}

其中Test包含着多态的体现:

1.Student stu = new Student();
//编译的时候就已经知道sayHello调用的是哪一个sayHello方法
stu.sayHello("Hello Java!");
stu.introduce();


2.//s是Person的引用
//s的实际的对象是Student对象
//s编译的时候以Person身份编译的
//s运行的时候以Student身份运行的
Person s = new Student();
s.introduce();

//虽然Studen类中有goHome()方法,却不能直接"."出来
//直接写s.goHome()会出错
((Student)s).goHome();


结果截图:





0 0
原创粉丝点击