小白学JAVA,与你们感同身受,JAVA---day6:抽象类接口的理解。鲁迅的一句话:总之岁月漫长,然而值得等待。
抽象類接口的理解
魯迅的一句話:總之歲月漫長,然而值得等待。
/*
抽象類中的面試題:
1.一個抽象類中可不可以沒有抽象方法:可以,這樣做的目的只有一個,就是不讓其他類創(chuàng)建本類對象交給子類完成。
2.abstract關(guān)鍵字不能和哪些關(guān)鍵字共存:
? ?static final private
接口的概述與特點(diǎn):
對外提供規(guī)則的都是接口,Java中interface為定義接口的關(guān)鍵字。
類實(shí)現(xiàn)接口用implements關(guān)鍵字。
接口不能實(shí)例化,用多態(tài)的方式來實(shí)例化。
接口的子類要重寫接口中的所有抽象方法。
接口中的成員特點(diǎn):
1.成員變量只能是常量,并且是靜態(tài)的公共的,public static final。
2.構(gòu)造方法:接口沒有。
3.成員方法:只有抽象方法,public abstract。
類、接口之間的聯(lián)系:
1.類與類:繼承關(guān)系,只能單繼承,可以多層繼承。
2.類與接口:實(shí)現(xiàn)關(guān)系,能多實(shí)現(xiàn),可以繼承一個類的同時實(shí)現(xiàn)多個接口。
3.接口與接口:繼承關(guān)系,可以單繼承,也可以多繼承。
抽象類和接口的理念:
1.抽象類被繼承體現(xiàn)的是"is a"的關(guān)系,抽象類中定義的是該繼承體系中的共性功能。
2.接口被實(shí)現(xiàn)體現(xiàn)的是"like a"的關(guān)系,接口中定義的是該實(shí)現(xiàn)體系中的擴(kuò)展功能。
?*/
/*
interface InterA{
?? ?abstract void printA();
}
interface InterB{
?? ?abstract void printB();
}
interface InterC extends InterA,InterB{
}*/
class day6{
?? ?public static void main(String[] args) {
?? ??? ?new Dog(16,"老大").eat();
?? ??? ?new Dog(18,"老二").sleep();
?? ??? ?new Cat(13,"花花").eat();
?? ??? ?new Cat(12,"草草").sleep();
?? ??? ?new Cat(12,"草草").jump();
?? ?}
}
/*
class demo implements InterC{
?? ?public void printA(){
?? ??? ?System.out.println("接口A");
?? ?}
?? ?public void printB(){
?? ??? ?System.out.println("接口B");
?? ?}
}
*/
interface Jump{
?? ?public abstract void jump();
}
abstract class Animal{
?? ?private int age;
?? ?private String name;
?? ?public Animal(){
?? ?}
?? ?public Animal(int age,String name){
?? ??? ?this.age=age;
?? ??? ?this.name=name;
?? ?}
?? ?abstract void eat();
?? ?abstract void sleep();
?? ?void setAge(int age){
?? ??? ?this.age=age;
?? ?}
?? ?void setName(String name){
?? ??? ?this.name=name;
?? ?}
?? ?int getAge(){
?? ??? ?return this.age;
?? ?}
?? ?String getName(){
?? ??? ?return this.name;
?? ?}
}
class Dog extends Animal{
?? ?public Dog(int age,String name){
?? ??? ?super(age,name);
?? ?}
?? ?void eat(){
?? ??? ?System.out.println(this.getAge()+"的"+this.getName()+"成功吃飯");
?? ?}
?? ?void sleep(){
?? ??? ?System.out.println(this.getAge()+"的"+this.getName()+"睡覺");
?? ?}
}
class Cat extends Animal implements Jump{
?? ?public Cat(int age,String name){
?? ??? ?super(age,name);
?? ?}
?? ?void eat(){
?? ??? ?System.out.println(this.getAge()+"的"+this.getName()+"成功吃飯");
?? ?}
?? ?void sleep(){
?? ??? ?System.out.println(this.getAge()+"的"+this.getName()+"睡覺");
?? ?}
?? ?public void jump(){
?? ??? ?System.out.println(this.getAge()+this.getName()+"學(xué)會了跳高");
?? ?}
}
?
總結(jié)
以上是生活随笔為你收集整理的小白学JAVA,与你们感同身受,JAVA---day6:抽象类接口的理解。鲁迅的一句话:总之岁月漫长,然而值得等待。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于小样本学习的图像分类技术综述
- 下一篇: Java面试知识点:多线程