1、继承:向上追溯,对同一批类的抽象,延续和扩展父类的一切信息!

1)关键字:extends      例如,父类是Animal,子类是Dog;   eg: public class Dog extends Animal

    2)父类也称超类,可用super引用

    3)子类也称派生类:必须继承父类,可以继承父类的属性和方法

      重写:在子类中,方法名、形参、个数、类型、顺序相同!     关键字:@Override

      重载:在同一个类中,名称相同的,  形参个数、类型、顺序不同!

       注意:继承父类的方法时,因父类不满足要求了,我们需要重写父类的方法。

      eg: @Override
           public void eat() {
              System.out.println("猫吃鱼");
          }

    4)注意事项:属性不能被重写!
                              私有方法、静态方法、final方法 不能被重写!
                              重写前提需要继承!

2、继承的好处:

      重用代码、避免重复、重写方法、新曾方法、提高了效率!

3、Object类

是所有类的祖先,任何一个类都直接或者是间接的继承了Object!
           如果一个类没有显示extends任何类,默认的继承Object类!

4、例子:功能:Aniaml类,Dog类,Cat类

/*
*Animal 类
*/ public class Animal extends Object{
//颜色
String color;
//年龄
int age; public void eat(){
System.out.println("动物吃饭");
} public void sleep(){
System.out.println("动物睡觉");
} public void introduce(){
System.out.println("自我介绍:颜色:"+color+",age:"+age);
}
@Override
public String toString() {
return "动物的颜色:"+color+",年龄:"+age;
} }
//Dog类

public class Dog extends Animal{
//狗自己特有的属性
String name;
String type; //特有的看门的方法
public void guard(){
System.out.println("小狗"+name+"在看门,是人类的好朋友");
} @Override
public void eat() {
System.out.println("小狗"+name+"在吃饭");
}
@Override
public void sleep() {
System.out.println("小狗"+name+"在睡觉");
} @Override
public void introduce() {
System.out.println("dog:color:"+color+",age:"+age+",name"+name+",type:"+type);
}
@Override
public String toString() {
return "狗的名称:"+name+",年龄;"+age+"岁,种类"+type+",颜色:"+color;
}
}
//Cat类

public class Cat extends Animal{
String name;
String sex;
@Override
public void eat() {
System.out.println("猫吃鱼");
} @Override
public void sleep() {
System.out.println("猫看不见它睡觉");
} @Override
public void introduce() {
System.out.println(name+"喵喵的叫");
}
@Override
public String toString() {
return "猫的名称:"+name+",年龄:"+age+"岁,性别"+sex+",颜色:"+color;
} }
//TestAnimal

public class TestAnimal {
public static void main(String[] args) {
Animal an =new Animal();
an.age=2;
an.color="yellow";
an.eat();
an.sleep();
an.introduce();
System.out.println(an.toString());
System.out.println("---------------"); Dog dog =new Dog();
dog.age=3;
dog.color="black and blue";
dog.name="旺财";
dog.type="拉布拉多";
dog.eat();
dog.sleep();
dog.introduce();
dog.guard();
System.out.println(dog.toString());
System.out.println("---------------"); Cat cat =new Cat();
cat.age=2;//父类的属性
cat.color="白色";//父类的属性
cat.name="图图";//孩子自己独有的
cat.sex="母";//孩子自己独有的
cat.eat();//重写了
cat.sleep();//重写了
cat.introduce();//重写了
System.out.println(cat);
} }

 

        

最新文章

  1. Session在类库中的使用
  2. Project 'king.commons' is missing required library: 'lib/plweb.jar' Build path Build Path Problem
  3. 腾讯网2016回响中国:华清远见荣获2016年度知名IT培训品牌
  4. 用PHP抓取页面并分析
  5. 【小贴士】关于transitionEnd/animate的一个有趣故事
  6. 转载:java程序员如何拿到2万月薪
  7. 【MyEclipse 2015】 逆向破解实录系列【1】(纯研究)
  8. iOS中的多线程及GCD
  9. SNAT
  10. 【转】IOS 怎么获取外设的广播数据AdvData
  11. List、Set、Map的使用
  12. C++函数调用
  13. linux下libreoffice安装测试
  14. java 读写excle
  15. python网络数据采集(伴奏曲)
  16. [HNOI 2015]亚瑟王
  17. sublime text3 安装package control 插件,解决访问被墙的问题
  18. java实现Windows记事本
  19. [转]GitLab Continuous Integration (GitLab CI/CD)
  20. Vue——显示微信用户名称中enjoin表情

热门文章

  1. 如何正确选择MySQL数据列类型
  2. 平板与PC的文件交互及播放
  3. web-ylbtech-数据库备份-数据库设计
  4. Android FrameWork——相关内容
  5. HDU5805 NanoApe Loves Sequence (BestCoder Round #86 B)前后缀预处理
  6. [转]Linux下which、whereis、locate、find 命令的区别
  7. 2016年JavaScript技术栈展望
  8. VS如何设置OpenCV静态编译
  9. DOM笔记(十):JavaScript正则表达式
  10. Cracking the Code Interview 4.3 Array to Binary Tree