Java菜鸟成长之路__Day_4_Java_抽象,继承,接口
2017-07-19 17:29
716 查看
继承:
关键字:extends
用法:class zi extends fu{
方法重写:即方法名相同,具体内容不同
无参构造
有参构造
}
作用;当多各类有共同的属性时,将这些共有的属性拿出来定义为一个父类,再用具体的子类继承父类的成员参数,以此提高开发效率.
接口:
关键字:interface
用法:public interface 接口名{
抽象方法;如:public abstract void jump();
}
实现方法:
关键字:implements
用法:子类 extends 父类 implements 接口名{
方法重写:即方法名相同,具体内容不同
有参构造
无参构造
};
作用:当子类中有少数特有的方法,这是就需要接口类实现
抽象:
关键字:abstract
用法:修饰类名,方法名
具体用代码讲解:
package extendstest;
//定义一个抽象类,动物类
public abstract class Aninal {
//私有化成员变量
private
String name;
private int age;
private String color;
//无参构造
public Aninal() {
super();
// TODO Auto-generated constructor stub
}
//有参构造
public Aninal(String name, int age, String color) {
super();
this.name = name;
this.age = age;
this.color = color;
}
//set() get() 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
//抽象方法
public abstract void eat();
//成员方法
public void sleep(){
System.out.println("累了就要睡觉");
}
public void show(){
System.out.println(name+"\n"+age+"\n"+color);
}
}
//定义接口
package extendstest;
public interface Jump {
//注意:接口中全是抽象方法(abstract)!
public abstract void jump();
}
package extendstest;
//定义普通猫
public class Cat extends Aninal {
@Override
public void eat() {
System.out.println("猫饿了就要吃鱼");
}
//无参构造
public Cat() {
super();
// TODO Auto-generated constructor stub
}
//有参构造
public Cat(String name, int age, String color) {
super(name, age, color);
// TODO Auto-generated constructor stub
}
}
//定义会会跳高的猫
package extendstest;
public class JumpCat extends Aninal implements Jump {
@Override
public void jump() {
System.out.println("我是会跳高的猫");
}
@Override
public void eat() {
System.out.println("会调高的猫要吃好吃的");
}
//无参构造
public JumpCat() {
super();
// TODO Auto-generated constructor stub
}
//有参构造
public JumpCat(String name, int age, String color) {
super(name, age, color);
// TODO Auto-generated constructor stub
}
}
//测试
package extendstest;
public class Cat_Dog_test {
public static void main(String[]args){
//定义一个普通猫
Cat c1=new Cat();
c1.setName("Tom");
c1.setAge(2);
c1.setColor("黑白");
c1.show();
c1.sleep();
c1.eat();
System.out.println("------------");
//定义一个跳高猫
JumpCat c2=new JumpCat("Rose",2,"黑白");
c2.show();
c2.sleep();
c2.eat()
4000
;
System.out.println("------------");
}
}
结果:
Tom
2
黑白
累了就要睡觉
猫饿了就要吃鱼
------------
Rose
2
黑白
累了就要睡觉
会调高的猫要吃好吃的
------------
狗类自己测试
关键字:extends
用法:class zi extends fu{
方法重写:即方法名相同,具体内容不同
无参构造
有参构造
}
作用;当多各类有共同的属性时,将这些共有的属性拿出来定义为一个父类,再用具体的子类继承父类的成员参数,以此提高开发效率.
接口:
关键字:interface
用法:public interface 接口名{
抽象方法;如:public abstract void jump();
}
实现方法:
关键字:implements
用法:子类 extends 父类 implements 接口名{
方法重写:即方法名相同,具体内容不同
有参构造
无参构造
};
作用:当子类中有少数特有的方法,这是就需要接口类实现
抽象:
关键字:abstract
用法:修饰类名,方法名
具体用代码讲解:
package extendstest;
//定义一个抽象类,动物类
public abstract class Aninal {
//私有化成员变量
private
String name;
private int age;
private String color;
//无参构造
public Aninal() {
super();
// TODO Auto-generated constructor stub
}
//有参构造
public Aninal(String name, int age, String color) {
super();
this.name = name;
this.age = age;
this.color = color;
}
//set() get() 方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
//抽象方法
public abstract void eat();
//成员方法
public void sleep(){
System.out.println("累了就要睡觉");
}
public void show(){
System.out.println(name+"\n"+age+"\n"+color);
}
}
//定义接口
package extendstest;
public interface Jump {
//注意:接口中全是抽象方法(abstract)!
public abstract void jump();
}
package extendstest;
//定义普通猫
public class Cat extends Aninal {
@Override
public void eat() {
System.out.println("猫饿了就要吃鱼");
}
//无参构造
public Cat() {
super();
// TODO Auto-generated constructor stub
}
//有参构造
public Cat(String name, int age, String color) {
super(name, age, color);
// TODO Auto-generated constructor stub
}
}
//定义会会跳高的猫
package extendstest;
public class JumpCat extends Aninal implements Jump {
@Override
public void jump() {
System.out.println("我是会跳高的猫");
}
@Override
public void eat() {
System.out.println("会调高的猫要吃好吃的");
}
//无参构造
public JumpCat() {
super();
// TODO Auto-generated constructor stub
}
//有参构造
public JumpCat(String name, int age, String color) {
super(name, age, color);
// TODO Auto-generated constructor stub
}
}
//测试
package extendstest;
public class Cat_Dog_test {
public static void main(String[]args){
//定义一个普通猫
Cat c1=new Cat();
c1.setName("Tom");
c1.setAge(2);
c1.setColor("黑白");
c1.show();
c1.sleep();
c1.eat();
System.out.println("------------");
//定义一个跳高猫
JumpCat c2=new JumpCat("Rose",2,"黑白");
c2.show();
c2.sleep();
c2.eat()
4000
;
System.out.println("------------");
}
}
结果:
Tom
2
黑白
累了就要睡觉
猫饿了就要吃鱼
------------
Rose
2
黑白
累了就要睡觉
会调高的猫要吃好吃的
------------
狗类自己测试
相关文章推荐
- Java菜鸟成长之路__Day_4_Java_内部类
- Java菜鸟成长之路__Day_2_Java_方法
- Java菜鸟成长之路__Day_3_Java_二维数组
- Java菜鸟成长之路__Day_1_Java概述及基础语法
- Java菜鸟成长之路__Day_3_Java_一维数组
- Java菜鸟成长之路__Day_4_Java_面向对象
- Java菜鸟成长之路__Day_4_Java_如何写一个标准类?
- 一个菜鸟java码农的成长之路(2):迭代器Iterator接口概述
- Java菜鸟成长之路__Day_4_Java_返回值为类怎么办?
- Java——继承,抽象,接口
- 黑马程序员——Java基础---继承、抽象、接口
- CODE工成长之路1---菜鸟JAVA学习篇
- java基础--继承、抽象、接口
- 黑马程序员——Java基础---继承、抽象、接口(一)
- java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
- 黑马程序员——Java基础继承、抽象、接口
- Java基础:继承、多态、抽象、接口
- 黑马程序员——Java基础---继承、抽象、接口
- Java基础-->面向对象<继承,内部类,多态,包,抽象与接口>