免费正能量励志网站seo是哪里
面向对象三大特征:封装、继承、多态
继承:避免代码重复
没有继承就没有多态
一、什么是多态?写法?
二、代码示例
一个类的成员变量用private修饰,在本类的成员方法可以使用,比如get方法的return name;或者show方法的sout(name+","+age); 之后在测试类创建该类的对象时,也可以直接调用这些方法get/show/……,这样就可以访问被private修饰的成员变量
一个类的成员方法被定义之后,就可以在本类被其他成员变量调用。也可以直接在子类的成员变量中调用父类的非私有成员变量。
子类中的成员变量得是和父类不同的,所以子类的get/set方法是只子类中的成员变量即可,然后就是方法的重用@Override
子类没有写有参构造函数,就不能在创建对象语句时直接赋值,但是可以在创建对象时什么也不写,因为无参构造方法是就算子类不写,系统也会默认加上的
1.父类---------Person
package com.itheima.exe8;public class Person {private String name;private int age;public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void show(){System.out.println(name+","+age);}
}
2.子类1-------Student
package com.itheima.exe8;public class Student extends Person {@Overridepublic void show(){System.out.println("学生信息为"+super.getName()+","+super.getAge());//也可以这样写://System.out.println("学生信息为"+getName()+","+getAge());}}
3.子类2-------Teacher
package com.itheima.exe8;public class Teacher extends Person{@Overridepublic void show(){System.out.println("老师信息为"+getName()+","+getAge());}
}
4.子类3-------Administrator
package com.itheima.exe8;public class Administrator extends Person{@Overridepublic void show(){System.out.println("管理员的信息为"+super.getName()+","+super.getAge());}
}
5.测试类----------Test
package com.itheima.exe8;public class Test {public static void main(String[] args) {//先创建三个对象//因为这三个子类都没有定义构造方法,所以不能直接赋值,要用set方法Student s=new Student();s.setName("张三");s.setAge(18);Administrator a=new Administrator();a.setName("阿伟");a.setAge(28);Teacher t=new Teacher();t.setName("老王");t.setAge(40);register(s);register(t);register(a);}public static void register(Person p){p.show();}
}