「java抽象类实例化代码」java抽象方法例子

博主:adminadmin 2022-11-24 06:28:08 52

本篇文章给大家谈谈java抽象类实例化代码,以及java抽象方法例子对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java请设计一个使用抽象类或接口的示例代码

//接口

public interface BankCard {

public void norm();

}

//工商银行实现类

public class ICBCBankCard implements BankCard {

@Override

public void norm() {

// TODO 银行规范

}

public void saveMoney(int money){

//TODO 执行存钱动作 

}

public void transfer(String account,int money){

//TODO 执行转账 动作

}

}

//交通银行实现类

public class CommunicationsBankCard implements BankCard {

@Override

public void norm() {

// TODO 银行规范

}

public void saveMoney(int money){

//TODO 执行存钱动作 

}

public void transfer(String account,int money){

//TODO 执行转账 动作

}

}

上面的例子只是申明了通用的规范,如果想让实现类都能实现存钱和转账功能,可以在接口里面声明这两个方法,写一个通用的实现类,实现这些方法,然后具体的子类继承该通用类,这样可以直接继承父类方法,如果不同的银行具体实现不同,可以复写父类中的两个方法。

Java中的抽象类为什么不能实例化

首先抽象类不能实例化是一个java的语法规范。

抽象类中是可以包含抽线方法,不是必须。如果一个抽象类没有一个抽象方法,那么他和一个普通java类就没有任何区别了,也就是说,在这种情况下又没有abstract修饰都是一样的。定义了一个包含抽象方法的抽象类,其子类在继承自该抽象类的时候,子类就必须实现父类的所有抽象方法。之所以在java变成中存在这样一个语法规范,就是为了定义这种类型结构来解决生活中这样的一些实际问题。

比如举一个简单例子:

父亲(抽象类)是一个残疾人,他一生都想着要去见义勇(父类的抽象方法)为帮助他人,但是由于自生残疾行动不便,然后他就要求其所有的儿子(继承自抽象类的子类)能实现他的这个愿望(继承父类的抽象方法)。然而每一个儿子在实现父亲想见义勇为这个愿望的时候,每个儿子的做法是不一样的。大儿子喜欢这种方式的见义勇为(子类一有其自己的实现方法),二儿子喜欢其他的见义勇为的方式(子类二有其自己的实现方法)....因此java的抽象类就是用在这种场景中,解决这种问题的。

java程序,抽象类实现,求具体代码

package test;

/**

*

* @author JinnL

*父类抽象类

*/

public abstract class Car {

//转弯

abstract void turn();

//启动

abstract void start();

void what(){

System.out.println("this is "+this.getClass().getSimpleName());

}

public static void main(String[] args) {

/**

* 方法入口

*/

Car[] cars ={new Bicycle(),new Automobile(),new GasAutomobile(),new DieselAutomobile()};

for (Car car : cars) {

car.start();

}

}

}

class Bicycle extends Car{

@Override

void turn() {

System.out.println("this is "+this.getClass().getSimpleName());

}

@Override

void start() {

System.out.println("this is "+this.getClass().getSimpleName());

}

void what(){

}

}

class Automobile extends Car{

@Override

void turn() {

System.out.println("this is "+this.getClass().getSimpleName());

}

@Override

void start() {

System.out.println("this is "+this.getClass().getSimpleName());

}

}

class GasAutomobile extends Automobile{

//重写start turn

@Override

void turn() {

System.out.println("this is "+this.getClass().getSimpleName());

}

@Override

void start() {

System.out.println("this is "+this.getClass().getSimpleName());

}

}

class DieselAutomobile extends Automobile{

@Override

void start() {

System.out.println("this is "+this.getClass().getSimpleName());

}

void what(){

System.out.println("this is "+this.getClass().getSimpleName());

}

}

JAVA抽象类 私有构造方法 如何实例化

其实你的问题不算是问题。定义抽象类可以有抽象方法,也可以没有抽象方法,也可以全部都是抽象方法。定义为抽象类就是为了不让这个类创建对象、如果想创建对象。子类继承就可以了、 然后抽象类的引用指向子类的对象。这叫Java中的多态!!子类new对象的时候需要访问父类的构造方法。父类的构造方法定义为private。子类无法访问,自然创建不了对象、

java抽象类问题

你对抽象类的概念不是很熟哈,呵呵,抽象类不能实例化是正确的,但是不能不能代表其不能拥有一些类似set等成员方法或者属于类级别的static方法,但抽象类包含非static方法的时候,这个时候从类定义上是需要通过类实例调用的,抽象类不具有实例化功能,不能代表不能通过其子类获取父类的实例来实现对抽象类中非static方法的调用

上面的代码就是通过这种方法实现的,如果还不能理解,最好的方法就是查看下getXX的该方法的实现源码了,java是开源的你可以很容易获取一份源码的

抽象类怎么实例化?

抽象类就一定不可以实例化吗?

呵呵,不一定哦。。看下面的例子:

public abstract class YourClassName

{

public abstract Object someMethod(...);

}

在你要有的地方

YourClassName ycn = (YourClassName) java.lang.reflect.Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), new Class[]{YourClassName.class},new java.lang.reflect.

InvocationHandler(){

public Object invoke(Object proxy,Method m,Object params[]) throws Exception{return null;}

});

只是这个实例没有任何用处,他所有的方法都直接返回

如果要使不是abstract的方法和原来的一样,

那么修改invoke函数,判断m是不是抽象的

不是就调用proxy中的方法

关于java抽象类实例化代码和java抽象方法例子的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-24,除非注明,否则均为首码项目网原创文章,转载请注明出处。