继承
继承是编程语言很重要的思路。编程讲究简单化,稳定,避免重复造轮子。
继承可理解为一个对象从另外一个对象获取属性的过程
比如小猫,小狗都需要喝水,那我们定义个动物类,里面定义一个喝水方法。让小猫,小狗类分别去继承动物类,这样不用定义都具有了喝水功能。
extends继承类关键字
首先要记住:
- 在Java中,类的继承是单继承,就是说,一个子类只能拥有一个父类
- 所有Java的类均是有Object类继承而来的,就是说,你没有继承任何类时,默认继承了Object类
- 通过extends,子类可以继承父类除private属性外的所有属性,但不会继承构造函数
示例代码:
class Animal{
private int a =100;
public String name = "动物";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Cat extends Animal{
}
public class ExtendsDemo {
public static void main(String[] args) {
Cat cat = new Cat();
cat.setName("小猫");//父类继承过来的方法
System.out.println(cat.getName());
}
}
重写Override
重写是子类对父类允许访问的方法的方法内容进行重新编写。
注:返回值和形参都不能改变。即只能改大括号{}里面的内容
好处:子类可以根据需要实现父类的方法
示例代码:
class Animal{
private int a =100;
public String name = "动物";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void sound(){
System.out.println("我会叫");
}
}
class Cat extends Animal{
//重写
@Override
public void sound() {
//super.sound(); //注释掉
System.out.println("喵喵喵");
}
}
public class ExtendsDemo {
public static void main(String[] args) {
Cat cat = new Cat();
cat.setName("小猫");
System.out.println(cat.getName());
cat.sound();
}
}
重载Overload
重载是指在同一个类里面,方法名相同,而参数不同,返回值可同可不同(也可以没有)。也可用在构造函数
示例代码:
class Cat extends Animal{
//重写,修饰符保持和父类一样,不能改为更严格的修饰符
@Override
public void sound() {
//super.sound(); //注释掉
System.out.println("喵喵喵");
}
//重载:关键是方法名相同,参数不同,其他的修饰符,返回值可以改也可以不改
private void sound(int num){
System.out.println("叫"+num+"声");
}
//重载
public String sound(String content){
return "我是猫"+content;
}
}
网友评论