## 继承
课堂代码:
~~~java
package com.dodoke.demo;
public class Animal {
protected String sex;
protected int age;
protected String color;
protected String type;
public void eatFood() {
System.out.println(this.type + " is eating food");
}
protected String sleep() {
return this.type + " 正在睡觉";
}
public Animal() {
}
public Animal(String type, int age) {
this.type = type;
this.age = age;
}
public Animal(String sex, int age, String color, String type) {
super();
this.sex = sex;
this.age = age;
this.color = color;
this.type = type;
}
}
~~~
~~~Java
package com.dodoke.demo;
public class Dog extends Animal {
private String bark;
public String getBark() {
return this.bark;
}
public void setBark(String bark) {
this.bark = bark;
}
//继承语法
/**
* [修饰符] class SubClass extends SuperClass {
* 修饰符 class 子类名称 extends 父类名称
* }
*/
/**
* 重写实际上针对父类的方法进行修改
* 通常会在重写的方法上加上注解 @Override
* @param args
*/
@Override
public String sleep() {
return this.type + "正在躺着睡觉";
}
/**
* 重写的toString()方法
* 会在打印对象的时候,主动调用toString()方法,打印对象信息
*/
@Override
public String toString() {
return "Dog [type = "+ this.type + ",age = "+ this.age +",color = "+ this.color +",sex = "+ this.sex +",bark = "+ this.bark +"]";
}
/**
* 使用super可以调用父类被覆盖的方法和父类的属性
*/
public void getFatherMethodSleep() {
System.out.println(super.sleep());
eatFood();
}
/**
* 调用父类构造器
* [修饰符] 类名() {
* super();//在第一行调用父类构造器
* }
*/
public Dog() {
super();
}
public Dog(String type, int age) {
super();
this.type = type;
this.age = age;
};
public Dog(String type, int age, String color) {
super(type,age);//调用了父类的构造器,注意!!!
//this(type,age);在同一构造器中,this()和super()只能出现一个
this.color = color;
}
public Dog(String sex, int age, String color, String type, String bark) {
super(sex, age, color, type);
this.bark = bark;
}
public static void main(String[] args) {
Dog dog = new Dog();
dog.type = "狗 ";
dog.age = 9;
dog.color = "黑色";
dog.sex = "公";
dog.setBark("ww");
dog.eatFood();
System.out.println(dog.sleep());
dog.getFatherMethodSleep();
System.out.println(dog);
Dog dog2 = new Dog("狗", 7, "白色");
System.out.println(dog2);
}
}
~~~
- 课程开始
- 第一课20191008
- 第二课20191009
- HTML
- CSS
- CSS第一课
- CSS第二课
- CSS第三课
- CSS第四课
- CSS第五课
- JavaScript
- Js第一课
- Js第二课
- Js第三课
- Js第四课
- Js第五课
- Js第六课
- Js第七课
- Js-事件模型
- Js-2019-10-31-标准库
- Js-2019-11-01- 标准库
- Js-2019-11-01-Json
- Js-2019-11-01-对象的创建
- Js-2019-11-04-this的使用
- Js-2019-11-05-storage与异常
- Js-2019-11-05-BOM与补充知识点
- Js-2019-11-06-正则表达式和计时器
- jQuery
- jQuery-2019-11-13-初识jQuery
- jQuery-2019-11-14-jQuery节点操作
- jQuery-2019-11-15-jQuery节点操作二
- jQuery-2019-11-16-jQuery效果与动画
- Java
- Java-2019-11-27-变量直接量数据格式运算符
- Java-2019-11-28-流程控制
- Java-2019-12-02-数组
- Java-2019-12-04 面向对象
- Java-2019-12-05-封装
- Java-2019-12-06-深入构造器
- Java-2019-12-09-继承
- Java-2019-12-10-多态
- Java-2019-12-10-包装类
- Java-2019-12-11-final修饰符
- Java-2019-12-11-包装类
- Java-2019-12-11-接口
- java-2019-12-13-设计模式
- Java-2019-12-16-集合框架
- Java-2019-12-18-集合排序
- Java-2019-12-23-常用类学习
- Java-2019-12-25-异常处理
- Java-2019-12-31-内部类详解
