继承
子类自动拥有父类中可以继承的属性和方法。 只支持单继承,不支持多继承
父类
package cn.itcast.demo01;
public class Emoloyee {
String name;
public void work() {
System.out.println("员工在工作");
}
}
复制代码
子类
package cn.itcast.demo01;
public class Develop extends Emoloyee{
public void print() {
System.out.println(name+"------");
}
}
复制代码
父类子类中成员变量 子类的对象,调用成员变量 子类自己有使用自己的,子类没有调用父类的。 在子类中,调用父类的成员,关键字super.调用父类的成员 this.调用本类成员 super.调用的自己的父类成员
package cn.itcast.demo02;
public class Zi extends Fu {
int i = 2;
public void show() {
int i = 3;
/*
* 调用父类中的i,同名的情况下
*/
System.out.println(super.i);
}
}
复制代码
重载:
方法名一样,参数列表不同,同一个类的事情 继承后,子类父类中成员方法的特点 子类的对象调用方法的时候 子类自己有使用子类的,子类自己没有,调用父类的. 方法重写 子类中,出现了父类一模一样的方法的时候,子类重写父类的方法
package cn.itcast.demo03;
public class Zi extends Fu{
public void show() {
//方法的覆盖
super.show();
System.out.println("子类的方法show2");
}
}
复制代码
抽象类
package cn.itcast.demo04;
/*
* 定义类开发类
* 抽象类
* 抽象方法必须存在于抽象类中,必须用abstract修饰
* 抽象类强制子类重写抽象方法.....
*/
public abstract class Develop {
public abstract void work();
}
复制代码
package cn.itcast.demo04;
public class JavaEE extends Develop{
@Override
public void work() {
// 重写父类的抽象方法
//去掉abstract修饰符,加上方法主体
System.out.println("JavaEE工程师在开发");
}
}
复制代码
补充
package cn.itcast.demo05;
/*
* 抽象类,可以没有抽象方法,可以定义带有方法体的方法
* 让子类继承直接使用//
* private 无法修饰抽象方法,因为抽象方法的目的就是重写。所有不能一起使用
* final static.....
*/
public abstract class Animal {
public void sleep() {
System.out.println("动物睡觉");
}
}
复制代码