java自学笔记之继承、抽象类、方法重载和重写。

java自学笔记之继承、抽象类、方法重载和重写。

java面向对象的三个要素:继承、多态和封装
继承:父类是从具体的子类中从公共部分抽取出来的,它拥有各个子类的公共部分。
语法:class 子类 extends 父类
也就是说可以先写出子类的方法、属性,如果有公共的部分就可以提取出父类来
public class Tiger{
private String name;
private int id; #private私有类,别的类无法访问获取我的这个成员变量
public Tiger(String name, int id){ #所以想获取这个成员变量要用公共方法获取
this.name = name; #this表示谁创建了这个对象就指向谁
this.id = id;
}
public void eat(){
System.out.println(name+”正在睡”);
}
}
public class Mouse{
private String name;
private int id;
public Mouse(String name, int id){
this.name = name;
this.id = id;
}
public void eat(){
System.out.println(name+”正在睡”);
}
}
很明显,两段代码有大量重复,这时就可以提取出父类来
public class Animal{
private String name;
private int id;
public Animal(String name, int id){
this.name = name;
this.id = id;
}
public void eat(){
System.out.println(this.name+”正在睡”);
}
}
#在来一个继承
public class Tiger extends Animal{
public Tiger(String name, int id){ #构造方法名与类名相同
super(name, id); #用父类的方法进行初始化动作
}
}
因为子类不继承父类的构造函数,它只能调用,如果父类构造函数带有参数,通过super关键字调用父类构造函数,如果父类构造函数没有参数,则在子类构造函数中不需要使用super关键字调用父类构造函数,系统会自动调用父类的构造函数。
方法重载与重写的区别:
重写(Override)是子类对父类的方法的重写,重点是写!返回值和形参都不变。
重载(Override)是在一个类中,方法名相同,参数列表不同。返回类型可以相同也可以不同。
java抽象类
abstract class定义抽象类,抽象类不能实例化
抽象类什么时候用到呢?该类包含一个特别的成员方法,该方法的具体实现由它的子类确定,那么就可以在父类中申明该方法为抽象方法。
抽象方法只包含一个方法名,而没有方法体。public abstract 方法名();
抽象方法必须申明在抽象类中。任何子类必须重写父类的抽象方法(实现抽象类的方法)。除非子类也是抽象类
构造方法,类方法用static修饰的方法不能申明为抽象方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值