继承:
子类继承父类,父类所有属性都将复制一份到子类
关键语句(extends)
子类只能拥有一个父类,父类可以拥有多个子类
子类可以成为另外一个非子类的父类
类似于父亲可以生多个儿子,而儿子也可以生儿子
- //父类 鸟类
- public abstract class bird{
- //性别
- char sex='雄';
- //姓名
- String name="鸟";
- //吃
- public void chi(){
- System.out.println("鸟儿吃虫子 ");
- }
- }
- //小鸟类
- class Thebird extends Pet{
- }
调用:
- public class test {
- public static void main(String[] args) {
- //调用小鸟类
- Thebird s=new Thebird();
- s.chi();
- System.out.println(s.sex+""+s.name);
- }
- }
输出结果:
鸟儿吃虫子
雄鸟
ps:
但是对于private的属性和方法,子类的确是继承了,但是仍然无法被外界调用
抽象类:
简称遗嘱或者负担,父类未完成的方法交给子类完成,当子类无法完成,则交个下个子类完成
关键单词abstract
父类
- //狗类
- //添加abstract 表示这是个抽象类 可以在里面写抽象方法
- public abstract class Dag {
- //抽象方法1 上天
- public abstract void god();
- //抽象方法2 下地
- public abstract String Escape(String machine);
- //实例方法 舔 抽象类并没有禁用 实例方法 和属性 和接口有所不同
- public int s;
- public void lick(){
- System.out.println("舔!");
- }
- }
子类实例化:
如果继承的子类未实现或者继续将方法抽象化则会提示报错
如果子类不实现父类的抽象方法,则需要把子类也定义为抽象类
- public abstract class puppy extends Dag{
- //上天方法
- public void god() {
- System.out.println("狗上天了");
- }
- //遁地方法 不继承
- public abstract String Escape(String machine);
- }