文章目录
前言
这里是!
从0开始学习JAVA的一些些整理与总结。
一、父类、子类的相关概念
Key Word : 单继承、多层次
父类(基类、超类) :父类下可以有多个不同的子类
子类(派生类) :一个子类只能继承一个父类
示例代码
父类代码示例:
public class fruit {
//属性
public String name;
//水果名
public String color;
//水果颜色
private int num;
//水果数量
//方法
public void fruit()
{
System.out.println(name+" is "+color+".\nwe have "+num+" "+name+"s.");
}
}
子类代码示例:
public class apple extends fruit
{
//重点看上面的 extends
}
主函数示例:
public class manage {
public static void main(String[] args)
{
apple a=new apple();
a.name="apple";
a.color="red";
a.num=2;
a.fruit();
}
}
输出结果:
二、继承的相关概念
在同一个包下,子类会继承父类中所有的属性和方法。
1.每一个类默认继承Object类、可以使用里面的方法
注意看这里出现的提示,这里提示出现方法不止有设置的方法,还有equals()等方法
2.继承会继承父类原有的方法
示例代码见上方
3.特殊情况
特殊情况:注意私有属性与方法受私有属性限制,只能在本类中使用,所以子类继承父类的私有属性以及方法后不能直接使用,具体使用方法可以见上一篇
代码示例:
父类函数中num修改成了pravite 属性
public class fruit {
//属性
public String name;
//水果名
public String color;
//水果颜色
private int num;
//水果数量
//使用private修饰的属性的方法
//构造方法
public void getnum(int num)
{
this.num=num;
}
//方法
public void fruit()
{
System.out.println(name+" is "+color+".\nwe have "+num+" "+name+"s.");
}
}
主函数示例:
public class manage {
public static void main(String[] args)
{
apple a=new apple();
a.name="apple";
a.color="red";
a.getnum(2);
a.friut();
}
}
输出:
三、方法重写
重写从父类中继承的得到的方法
1)必须应用在有继承关系的两个类之间
2)新方法的访问修饰符大于等于父类访问修饰符
新方法格式:(访问修饰符)返回值类型 父类方法名 (参数类型,参数名){内部重写的方法};
注意:参数要求个数、顺序与父类方法完全一致
方法重写:
{
①方法重写内如果想要保留父类原有的功能可以调用父类的方法
②调用父类方法的方式:super.父类方法名();
//this 表示本类对象 super 表示当前类的父类对象
}
方法重写代码示例:
public class apple extends fruit
{
String taste;
public void fruit()
{
System.out.println(name+" is "+color+".\n"+"It tastes "+taste+"!");
}
}
主函数:
public class manage {
public static void main(String[] args)
{
apple a=new apple();
a.name="apple";
a.color="red";
a.getnum(2);
a.taste="good";
a.fruit();
}
}
输出:
保留父类方法的方法重写
代码示例:
子函数代码
public class apple extends fruit
{
String taste;
public void fruit()
{
super.fruit();
//System.out.println(name+" is "+color+".\n"+"It tastes "+taste+"!");
}
}
主函数代码
public class manage {
public static void main(String[] args)
{
apple a=new apple();
a.name="apple";
a.color="red";
a.getnum(2);
a.taste="good";
a.fruit();
}
}
输出
四、自动转型与强制转型相关知识
自动转型:(向上转型)
1)将子类对象转型为父类类型
2)自动转型格式:父类名 对象名 = new 子类名();
3)转型后这个新的对象只能调用子类中重写的方法,并优先执行该方法(受父类类型限制)
代码示例:
注意 :这里子类中单独定义的taste属性就无法调用,报错了
强制转型:向下转型
1)强制转型必须建立在该对象已经做了一次自动转型的基础上
2)强制转型格式:子类名 对象名 = (子类名)自动转型里的对象名
代码示例:
主函数
public class manage {
public static void main(String[] args)
{
fruit a=new apple();
a.name="apple";
a.color="red";
a.getnum(2);
//a.taste="good";
//a.fruit();
//强制转型
apple a2=(apple)a;
a2.taste="good";
a2.fruit();
}
}
子类
public class apple extends fruit
{
String taste;
public void fruit()
{
super.fruit();
System.out.println(name+" is "+color+".\n"+"It tastes "+taste+"!");
}
}
输出
总结
以上就是总结的全部内容啦,只是一个简单的学习笔记兼总结,还希望大佬多多指点!
如果发现内容有误,欢迎大家指正!