封装:对象代表什么,就得封装对应的数据,并提供数据对应的行为
继承的特点
练习
代码
public class Animal {
//权限修饰符:
/*private:子类就无法访问了
* 私有:只能在本类中访问
* 爸爸的私房钱(只能自己用)
*
* 注意事项:子类只能访问父类中非私有的成员
* */
public void drink(){
System.out.println("喝水");
}
public void eat(){
System.out.println("吃饭");
}
}
public class Cat extends Animal{
public void catchMouse(){
System.out.println("抓老鼠");
}
}
public class Dog extends Animal{
public void lookHouse(){
System.out.println("看家");
}
}
public class Ragdoll extends Cat{
}
public class LiHua extends Cat{
}
public class Husky extends Dog{
public void breakHome(){
System.out.println("哈士奇在拆家");
}
}
public class Teddy extends Dog{
public void touch(){
System.out.println("泰迪在蹭一蹭");
}
}
public class Test {
public static void main(String[] args) {
//创建对象并调用方法
//1.创建布偶猫对象
Ragdoll rd = new Ragdoll();
rd.eat();
rd.drink();
rd.catchMouse();
System.out.println("----------------------------");
//2.创建哈士奇对象
Husky h = new Husky();
h.eat();
h.drink();
h.lookHouse();
h.breakHome();
}
}
总结
练习:
代码:
public class Employee {
//1.类名见名知意
//2.所有的成员变量都需要私有
//3.构造方法(空参 带全部参数的构造)
//4.get/set
private String id;
private String name;
private double salary;
public Employee() {
}
public Employee(String id, String name, double salary) {
this.id = id;
this.name = name;
this.salary = salary;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
//成员方法
//1.工作
public void work(){
System.out.println("员工在工作");
}
//2.吃饭
public void eat(){
System.out.println("员工在吃米饭");
}
}
public class Manager extends Employee{
private double bonus;
//空参构造
public Manager(){}
/*public Manager(double bonus) {
this.bonus = bonus;
}*/
//带全部参数的构造 --> 父类 + 子类
public Manager(String id, String name, double salary, double bonus) {
super(id, name, salary);
this.bonus = bonus;
}
public double getBonus() {
return bonus;
}
public void setBonus(double bonus) {
this.bonus = bonus;
}
//工作
@Override
public void work() {
System.out.println("管理其他人");
}
}
public class Cooker extends Employee{
//都被抽取出去了到父类中 (成员变量)
//直接写构造方法
public Cooker() {
}
public Cooker(String id, String name, double salary) {
super(id, name, salary);
}
//get和set 在父类中都有现成的直接拿过来用就行
//方法重写(工作)
@Override
public void work() {
System.out.println("炒菜");
}
}
public class Test {
public static void main(String[] args) {
//创建对象并赋值调用
Manager m = new Manager("001","zhangsan",88888,6666);//ctrl+p
System.out.println(m.getId() + "," + m.getName() + ","
+ m.getSalary() + "," + m.getBonus());
m.work();
m.eat();
Cooker c = new Cooker();
c.setId("002");
c.setName("lisi");
c.setSalary(12888);
System.out.println(c.getId() + "," + c.getName() + "," + c.getSalary());
c.work();
c.eat();
}
}